50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| //  Package imports.
 | |
| import { connect } from 'react-redux';
 | |
| import { defineMessages, injectIntl } from 'react-intl';
 | |
| 
 | |
| //  Our imports.
 | |
| import NotificationPurgeButtons from 'themes/glitch/components/notification_purge_buttons';
 | |
| import {
 | |
|   deleteMarkedNotifications,
 | |
|   enterNotificationClearingMode,
 | |
|   markAllNotifications,
 | |
| } from 'themes/glitch/actions/notifications';
 | |
| import { openModal } from 'themes/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));
 |