import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import { NotificationStack } from 'react-notification'; import { dismissAlert } from '../../../actions/alerts'; import { getAlerts } from '../../../selectors'; const formatIfNeeded = (intl, message, values) => { if (typeof message === 'object') { return intl.formatMessage(message, values); } return message; }; const mapStateToProps = (state, { intl }) => ({ notifications: getAlerts(state).map(alert => ({ ...alert, action: formatIfNeeded(intl, alert.action, alert.values), title: formatIfNeeded(intl, alert.title, alert.values), message: formatIfNeeded(intl, alert.message, alert.values), })), }); const mapDispatchToProps = (dispatch) => ({ onDismiss (alert) { dispatch(dismissAlert(alert)); }, }); export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(NotificationStack));