// Package imports. import { connect } from 'react-redux'; import { defineMessages, injectIntl } from 'react-intl'; // Our imports. import NotificationPurgeButtons from 'flavours/glitch/components/notification_purge_buttons'; import { deleteMarkedNotifications, enterNotificationClearingMode, markAllNotifications, } from 'flavours/glitch/actions/notifications'; import { openModal } from 'flavours/glitch/actions/modal'; const messages = defineMessages({ clearMessage: { id: 'notifications.marked_clear_confirmation', defaultMessage: 'Are you sure you want to permanently clear all selected notifications?' }, clearConfirm: { id: 'notifications.marked_clear', defaultMessage: 'Clear selected notifications' }, }); const mapDispatchToProps = (dispatch, { intl }) => ({ onEnterCleaningMode(yes) { dispatch(enterNotificationClearingMode(yes)); }, onDeleteMarked() { dispatch(openModal('CONFIRM', { message: intl.formatMessage(messages.clearMessage), confirm: intl.formatMessage(messages.clearConfirm), onConfirm: () => dispatch(deleteMarkedNotifications()), })); }, onMarkAll() { dispatch(markAllNotifications(true)); }, onMarkNone() { dispatch(markAllNotifications(false)); }, onInvert() { dispatch(markAllNotifications(null)); }, }); const mapStateToProps = state => ({ markNewForDelete: state.getIn(['notifications', 'markNewForDelete']), }); export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(NotificationPurgeButtons));