react-native-toast-banner
Version:
An animating banner fully based on Javascript
79 lines (61 loc) • 2.66 kB
Markdown
//img.shields.io/npm/v/react-native-toast-banner.svg)](https://www.npmjs.com/package/react-native-toast-banner) [](https://www.npmjs.com/package/react-native-toast-banner)
[](https://github.com/prettier/prettier)
[](https://github.com/benevbright/react-native-toast-banner/actions?query=workflow%3ACI) [](https://expo.io/)
An animating banner fully based on Javascript
<img src="docs/demo.gif?raw=true">
Try out the demo on [Expo Snack](https://snack.expo.io/@benevbright/react-native-toast-banner)
```js
import { SafeAreaProvider } from 'react-native-safe-area-context';
import {
ToastBannerProvider,
ToastBannerPresenter,
useToastBannerToggler /* or withToastBannerToggler */,
Transition,
} from 'react-native-toast-banner';
const MyScreen = () => {
/* If you don't want hooks, there is also HOC 'withToastBannerToggler' */
const { showBanner, hideBanner } = useToastBannerToggler();
const onPress = () => {
showBanner({
contentView: <Text>Hello the regular banner!</Text>,
backgroundColor: 'red' /* default: undefined */,
duration: 2000 /* default: 3000 */,
transitions: [
Transition.Move,
Transition.MoveLinear,
Transition.FadeInOut,
] /* default: [Transition.Move] */,
onPress: () => {
console.log('banner pressed');
// hideBanner(); // when specifying 'disableHideOnPress: true'
} /* default: undefined */,
disableHideOnPress: true /* default: undefined */,
});
};
return <Text onPress={onPress}>Show Banner</Text>;
};
const App = () => (
<SafeAreaProvider>
<ToastBannerProvider>
<MyScreen />
<ToastBannerPresenter />
</ToastBannerProvider>
</SafeAreaProvider>
);
```
See [/example/App.tsx](example/App.tsx) and [/example/src/my-banners.tsx](example/src/my-banners.tsx)
```bash
npm install react-native-toast-banner
```
PR is welcome!
[/example](example) imports the library directly from the root folder, configured with [babel-plugin-module-resolver](example/babel.config.js
So, just build the library with the `watch` option and run the example.
```bash
npm run build -- -w
cd example && npm run ios
```
[![npm](https: