reinbox-redux
Use reinbox with Redux.
If you are not using Redux, you can use reinbox only.
Install
npm install reinbox reinbox-redux
Usage
Configure store
reinbox-redux provides createReducer
and Provider
.
Please use combineReducers
to combineReducers with key: reinbox
.
import combineReducers createStore from "redux";import Provider from "react-redux";import Provider as ReinboxProvider createReducer from "reinbox-redux"; const rootReducer = ;const store = ; const App = <Provider => <ReinboxProvider>...</ReinboxProvider> </Provider>;
Custom namespace
If you want to change reducer name from reinbox
, you should pass namespace
prop to Provider.
import combineReducers createStore from "redux";import Provider from "react-redux";import Provider as ReinboxProvider createReducer from "reinbox-redux"; const rootReducer = ;const store = ; const App = <Provider => <ReinboxProvider ="someGreatReducer">...</ReinboxProvider> </Provider>;
Publish & dismiss
reinbox-redux provides actions
.
It contains two action creators: publish
and dismiss
.
import connect from "react-redux";import actions from "reinbox-redux";import Inbox from "reinbox"; const Control = onPublish onDismiss <div> <button =>notify</button> <button =>dismiss</button> </div>; const mapStateToProps = ;const mapDispatchToProps = { ; } { ; };const Controls = Control; const App = <Provider => <ReinboxProvider> <Controls /> <Inbox => payload dismiss payload && <div> <span>payloadmessage</span> <button =>dismiss</button> </div> </Inbox> </ReinboxProvider> </Provider>;
API
createReducer
const reducer = ;
actions.publish
;
argument | required | description |
---|---|---|
topic | Yes | Topic name you want to publish |
payload | Yes | Notification message. It should contains id field |
actions.dismiss
;
argument | required | description |
---|---|---|
topic | Yes | Topic name you want to dismiss |
id | Yes | message id |
<Provider />
<Provider ="someGreatReducer">...</Provider>
prop name | required | description | default |
---|---|---|---|
children | Yes | any react components | |
namespace | - | please refer Custom namespace | "reinbox" |
Development
git clone git@github.com:Leko/reinbox.git
cd reinbox
npm i
npx lerna bootstrap
License
This package under MIT license.