This is not well documented but it will give you an idea on how to start
react-notification-center demo
npm install --save react-notification-center
import 'react-notification-center/src/less/index.less'
import ReactNotificationCenter from 'react-notification-center';
export default class App extends Component {
constructor(props) {
super(props);
this.state = {
notifications = [{
id: 1,
title: 'some title', // not required
message: 'The notification text',
new: false, // if the user has read the notification
tags: [{ // not required
type: 'success',
text: 'text'
}],
date: '09/12/2016' // not required
}];
};
}
render() {
return (
<div className="wrapper">
<div className="your-notification-holder-class">
<ReactNotificationCenter
notifications={this.state.notifications}
notificationTitle={'React notification center'}
noNotificationText={'No notifications. Go home!'}
onScrollBottom={() => console.log('You are on the bottom babay :D')}
onScroll={() => console.log('You are scrolling on the list')}
onItemClick={item => console.log('## item clicked', item)}
onNotificationOpen={items => console.log('## all notifications', items)}
onNotificationClose={items => console.log('## all notifications', items)}
onScroll={e => console.log('You are scrolling', e)}
</div>
</div>
);
}
}
In case you wanna control the notification-icon position you can do it by accessing the react-notification-center css class.
success info warning and danger
ok ok don't panic, you don't have the same data structure and you don't wanna map your current data here is what your can do. Just use the mapToItem props
this.mapDataToItems = {
id: '_id',
title: 'name',
message: 'text',
new: 'hasRead',
date: 'createAt'
}
<ReactNotificationCenter
{...}
mapToItem={this.mapDataToItems} />
Sorry but you cannot map tags at the moment :(
Clone the repo and run a local demo
git clone https://github.com/diegoddox/react-notification-center.git
cd react-notification-center
npm install
npm start
open your browser att http://localhost:4001 and take a look at the file developement/App.js
improve documentation.