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));