@ammarahmed/notifee-react-native
Version:
Notifee - a feature rich notifications library for React Native.
132 lines (97 loc) • 6.47 kB
Markdown
<p align="center">
<a href="https://notifee.app">
<img width="160px" src="https://notifee.app/logo-icon.png"><br/>
</a>
<h2 align="center">Notifee - React Native</h2>
</p>
---
A feature rich Android & iOS notifications library for React Native.
[> Learn More](https://notifee.app/)
## Installation
```bash
yarn add /react-native
```
## Documentation
- [Overview](https://notifee.app/react-native/docs/overview)
- [Licensing](https://notifee.app/react-native/docs/license-keys)
- [Reference](https://notifee.app/react-native/reference)
### Android
The APIs for Android allow for creating rich, styled and highly interactive notifications. Below you'll find guides that cover the supported Android features.
| Topic | |
| ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| [Appearance](https://notifee.app/react-native/docs/android/appearance) | Change the appearance of a notification; icons, colors, visibility etc. |
| [Behaviour](https://notifee.app/react-native/docs/android/behaviour) | Customize how a notification behaves when it is delivered to a device; sound, vibration, lights etc. |
| [Channels & Groups](https://notifee.app/react-native/docs/android/channels) | Organize your notifications into channels & groups to allow users to control how notifications are handled on their device |
| [Foreground Service](https://notifee.app/react-native/docs/android/foreground-service) | Long running background tasks can take advantage of a Android Foreground Services to display an on-going, prominent notification. |
| [Grouping & Sorting](https://notifee.app/react-native/docs/android/grouping-and-sorting) | Group and sort related notifications in a single notification pane. |
| [Interaction](https://notifee.app/react-native/docs/android/interaction) | Allow users to interact with your application directly from the notification with actions. |
| [Progress Indicators](https://notifee.app/react-native/docs/android/progress-indicators) | Show users a progress indicator of an on-going background task, and learn how to keep it updated. |
| [Styles](https://notifee.app/react-native/docs/android/styles) | Style notifications to show richer content, such as expandable images/text, or message conversations. |
| [Timers](https://notifee.app/react-native/docs/android/timers) | Display counting timers on your notification, useful for on-going tasks such as a phone call, or event time remaining. |
### iOS
Below you'll find guides that cover the supported iOS features.
| Topic | |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------ |
| [Appearance](https://notifee.app/react-native/docs/ios/appearance) | Change now the notification is displayed to your users. |
| [Behaviour](https://notifee.app/react-native/docs/ios/behaviour) | Control how notifications behave when they are displayed to a device; sound, crtitial alerts etc. |
| [Categories](https://notifee.app/react-native/docs/ios/categories) | Create & assign categories to notifications. |
| [Interaction](https://notifee.app/react-native/docs/ios/interaction) | Handle user interaction with your notifications. | |
| [Permissions](https://notifee.app/react-native/docs/ios/permissions) | Request permission from your application users to display notifications. | |
### Jest Testing
To run jest tests after integrating this module, you will need to mock out the native parts of Notifee or you will get an error that looks like:
```bash
● Test suite failed to run
Notifee native module not found.
59 | this._nativeModule = NativeModules[this._moduleConfig.nativeModuleName];
60 | if (this._nativeModule == null) {
> 61 | throw new Error('Notifee native module not found.');
| ^
62 | }
63 |
64 | return this._nativeModule;
```
Add this to a setup file in your project e.g. `jest.setup.js`:
If you don't already have a Jest setup file configured, please add the following to your Jest configuration file and create the new jest.setup.js file in project root:
```js
setupFiles: ['<rootDir>/jest.setup.js'],
```
You can then add the following line to that setup file to mock `notifee`:
```js
jest.mock('/react-native', () => require('@notifee/react-native/jest-mock'))
```
You will also need to add `` to `transformIgnorePatterns` in your config file (`jest.config.js`):
```bash
transformIgnorePatterns: [
'node_modules/(?!(jest-)?react-native|-native|)'
]
```
### Detox Testing
To utilise Detox's functionality to mock a local notification and trigger notifee's event handlers, you will need a payload with a key `__notifee_notification`:
```js
{
title: 'test',
body: 'Body',
payload: {
__notifee_notification: {
ios: {
foregroundPresentationOptions: {
banner: true,
list: true,
},
},
data: {}
},
},
}
```
The important part is to make sure you have a `__notifee_notification` object under `payload` with the default properties.
## License
- See [LICENSE](/LICENSE)
---
<p>
<img align="left" width="50px" src="https://static.invertase.io/assets/invertase-logo-small.png">
<p align="left">
Built and maintained with 💛 by <a href="https://invertase.io">Invertase</a>.
</p>
</p>
---