sonner-native
TypeScript icon, indicating that this package has built-in type declarations

0.19.0 • Public • Published

React Native Toasts

An opinionated toast component for React Native. A port of @emilkowalski's sonner.

sonner-native

Features

  • API fully matches Sonner's
  • Multiple variants, including success, error, warning, custom, promise
  • Promise variant with built-in loading state
  • Custom JSX with the custom variant
  • Top or bottom positions
  • Title and description
  • Action button with a callback
  • Custom icons
  • Optionally dismissable with swipe, configurable left or up
  • Dismissable with toast.dismiss(), one or all toasts
  • Highly performant using Reanimated 3, 60 FPS
  • Dark mode built-in
  • Works with Expo
  • NativeWind supported
  • Customizable via styles props
  • Works outside of React components

Showcase

Screenshot 2024-09-06 at 16 33 10

Screenshot 2024-09-06 at 16 32 27

Screenshot 2024-09-06 at 16 32 33

Screenshot 2024-09-06 at 16 32 39

Screenshot 2024-09-06 at 16 33 04

Expo Snack

https://snack.expo.dev/@gunnartorfis/sonner-native

Installation

npx expo install sonner-native

Requirements

To use this package, you also need to install its peer dependencies. Check out their documentation for more information:

Usage

In your App.tsx/entry point

import { Toaster } from 'sonner-native';

function App() {
  return (
    <View>
      <NavigationContainer>...</NavigationContainer>
      <Toaster />
    </View>
  );
}

Show a toast

import { toast } from 'sonner-native';

function SomeComponent() {
  return (
    <Button
      title="Show Toast"
      onPress={() => toast('Hello, World!')}
    />
  );
}

Web support

Even though Sonner Native works on the web, it is not recommended to use it there. Instead, use the original Sonner.

The following setup is recommended. Add a sonner.ts and sonner.web.ts file to your project and import from there instead of from this library directly. That way, sonner will be used on the web and sonner-native on native.

// sonner.ts
export * from 'sonner-native';
// sonner.web.ts
export * from 'sonner';

Documentation

For more advanced usage, check out the documentation

Recording

https://github.com/user-attachments/assets/ccc428ca-37c3-4589-9e8c-f414c40d764c

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library

Dependencies (0)

    Dev Dependencies (23)

    Package Sidebar

    Install

    npm i sonner-native

    Weekly Downloads

    9,945

    Version

    0.19.0

    License

    MIT

    Unpacked Size

    290 kB

    Total Files

    159

    Last publish

    Collaborators

    • gunnartorfis