2018-03-24 20:54:19 +11:00
|
|
|
import { injectIntl } from 'react-intl';
|
2023-05-24 01:15:17 +10:00
|
|
|
|
2016-11-21 05:39:18 +11:00
|
|
|
import { connect } from 'react-redux';
|
2023-05-24 01:15:17 +10:00
|
|
|
|
2016-11-21 05:39:18 +11:00
|
|
|
import { NotificationStack } from 'react-notification';
|
2023-05-24 01:15:17 +10:00
|
|
|
|
2017-06-24 00:05:04 +10:00
|
|
|
import { dismissAlert } from '../../../actions/alerts';
|
2016-11-21 05:39:18 +11:00
|
|
|
import { getAlerts } from '../../../selectors';
|
2016-09-13 03:20:55 +10:00
|
|
|
|
2023-07-09 04:01:08 +10:00
|
|
|
const formatIfNeeded = (intl, message, values) => {
|
|
|
|
if (typeof message === 'object') {
|
|
|
|
return intl.formatMessage(message, values);
|
|
|
|
}
|
2018-03-24 20:54:19 +11:00
|
|
|
|
2023-07-09 04:01:08 +10:00
|
|
|
return message;
|
2018-03-24 20:54:19 +11:00
|
|
|
};
|
2016-09-13 03:20:55 +10:00
|
|
|
|
2023-07-09 04:01:08 +10:00
|
|
|
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));
|
|
|
|
},
|
|
|
|
});
|
2016-09-13 03:20:55 +10:00
|
|
|
|
2018-03-24 20:54:19 +11:00
|
|
|
export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(NotificationStack));
|