46 lines
1.1 KiB
JavaScript
Raw Normal View History

2016-09-30 18:25:04 +02:00
/*
*
* NotificationProvider
*
*/
import React from 'react';
import { connect } from 'react-redux';
2017-08-21 15:12:53 +02:00
import { createStructuredSelector } from 'reselect';
import NotificationsContainer from 'components/NotificationsContainer';
import { selectNotifications } from './selectors';
import { hideNotification } from './actions';
2016-09-30 18:25:04 +02:00
export class NotificationProvider extends React.Component { // eslint-disable-line react/prefer-stateless-function
render() {
return (
2017-08-21 15:12:53 +02:00
<NotificationsContainer
onHideNotification={this.props.onHideNotification}
notifications={this.props.notifications}
/>
2016-09-30 18:25:04 +02:00
);
}
}
2016-10-05 11:32:31 +02:00
NotificationProvider.propTypes = {
2017-08-21 15:12:53 +02:00
notifications: React.PropTypes.object.isRequired,
onHideNotification: React.PropTypes.func.isRequired,
2016-10-05 11:32:31 +02:00
};
2017-08-21 15:12:53 +02:00
const mapStateToProps = createStructuredSelector({
notifications: selectNotifications(),
});
2016-09-30 18:25:04 +02:00
function mapDispatchToProps(dispatch) {
return {
2017-08-21 15:12:53 +02:00
onHideNotification: (id) => {
dispatch(hideNotification(id));
},
2016-09-30 18:25:04 +02:00
dispatch,
};
}
export default connect(mapStateToProps, mapDispatchToProps)(NotificationProvider);