Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/indexiatech/re-notif
Redux & React based Notifications center.
https://github.com/indexiatech/re-notif
Last synced: 4 months ago
JSON representation
Redux & React based Notifications center.
- Host: GitHub
- URL: https://github.com/indexiatech/re-notif
- Owner: indexiatech
- License: bsd-3-clause
- Created: 2015-09-03T18:38:48.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T01:05:03.000Z (about 2 years ago)
- Last Synced: 2024-08-06T01:07:38.342Z (4 months ago)
- Language: JavaScript
- Homepage: http://indexiatech.github.io/re-notif
- Size: 849 KB
- Stars: 148
- Watchers: 6
- Forks: 45
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# `redux-notifications`
> ✔️: **Use the [use-disposable-list](https://github.com/asaf/use-disposable-list) (unstyled) hook that can work with any css framework!**
> :warning: The previous package `re-notif` has been deprecated on NPM and renamed to `redux-notifications`. A list of changes can be found in the Changelog. Please update your applications accordingly.
[React](https://github.com/facebook/react) & [Redux](https://github.com/rackt/redux) based notifications center.
Thanks to Redux, the notification objects are maintained within Redux Store's State and are fired by Actions.
## Implementation
##### 1. Installation
`npm install --save redux-notifications`
##### 2. The next thing you need to do is to add the `redux-notifications` `reducer` to Redux.
```js
import { createStore, combineReducers } from 'redux'
import { reducer as notifReducer } from 'redux-notifications';
combineReducers({
notifs: notifReducer,
// ... more reducers here ...
})
```##### 3. Add the `Notifs` component at the root of your app
```js
import { Provider } from 'react-redux'
import { Notifs } from 'redux-notifications';
// ... other things like router ...
```
##### 4. Optionally import default CSS
`redux-notifications` uses [react-css-transition-group](https://facebook.github.io/react/docs/animation.html#high-level-api-reactcsstransitiongroup) with the following classes:
- .notif-transition-enter
- .notif-transition-enter-active
- .notif-transition-leave
- .notif-transition-leave-activeTo import the default stylesheet:
```js
import 'redux-notifications/lib/styles.css';
```## Sending notifications
Thanks to Redux, sending notification is simply done by firing an `Action`:
``` javascript
import { reducer as notifReducer, actions as notifActions, Notifs } from 'redux-notifications';
const { notifSend } = notifActions;class Demo extends React.Component {
send() {
this.props.dispatch(notifSend({
message: 'hello world',
kind: 'info',
dismissAfter: 2000
}));
}render() {
Send Notification
}
}
```## Actions
#### `actions.notifSend({config})`
##### `config.message : node` [required]
> The notification message, can be one of: `string`, `integer`, `element` or `array` containing these types.##### `config.kind : string` [optional] [default:'info']
> The notification kind, can be one of: `info`, `success`, `warning`, `danger`.##### `config.id : string` [optional] [default:Date.now()]
> Set an ID for the notification. If not set, defaults to Date.now().##### `config.dismissAfter : integer` [optional] [default:null]
> Auto dismiss the notification after the given number of milliseconds.#### `actions.notifClear()`
> Clear all current notifications.#### `actions.notifDismiss(id)`
> Dismiss a notification by ID---
## Notifs Component
#### ``
##### `CustomComponent : React component`
> A custom react component can be used instead of the default Notif component##### `className : string` [optional] [default:null]
> Pass a custom classname to the component.##### `componentClassName : string` [optional] [default:'notif']
> The base className for each Notif component. Can be used to override CSS styles.##### `transitionEnterTimeout : integer` [optional] [default:600]
> Define the react-transition-group enter timeout is milliseconds.##### `transitionLeaveTimeout : integer` [optional] [default:600]
> Define the react-transition-group leave timeout is milliseconds.##### `actionLabel : string`
> Label for action click##### `onActionClick : func`
> Function when action is clicked. Requires `actionLabel` prop## Development
```
git clone https://github.com/indexiatech/re-notif.git
cd re-notif
npm install
npm run start
```
Listening on localhost:9000