Co-authored-by: tobi <tobi.smethurst@protonmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/88 Co-authored-by: Zoë Bijl <moiety@noreply.codeberg.org> Co-committed-by: Zoë Bijl <moiety@noreply.codeberg.org>
34 lines
921 B
JavaScript
34 lines
921 B
JavaScript
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));
|