* added notification cleaning drawer * bugfix * fully implemented set operations for notif cleaning * i18n for notif cleaning drawer & improved logic slightly. Also added a confirm dialog * - notif dismiss "overlay" now shoves the notif aside to avoid overlap - added focus ring to header buttons - removed notif overlay entirely from DOM if mode is disabled * removed comment * CSS tuning - inconsistent division lines fix
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
 | 
						|
`<NotificationPurgeButtonsContainer>`
 | 
						|
=========================
 | 
						|
 | 
						|
This container connects `<NotificationPurgeButtons>`s to the Redux store.
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
//  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 | 
						|
 | 
						|
/*
 | 
						|
 | 
						|
Imports:
 | 
						|
--------
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
//  Package imports  //
 | 
						|
import { connect } from 'react-redux';
 | 
						|
 | 
						|
//  Our imports  //
 | 
						|
import NotificationPurgeButtons from './notification_purge_buttons';
 | 
						|
import {
 | 
						|
  deleteMarkedNotifications,
 | 
						|
  enterNotificationClearingMode,
 | 
						|
  markAllNotifications,
 | 
						|
} from '../../../../mastodon/actions/notifications';
 | 
						|
import { defineMessages, injectIntl } from 'react-intl';
 | 
						|
import { openModal } from '../../../../mastodon/actions/modal';
 | 
						|
 | 
						|
//  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 | 
						|
 | 
						|
/*
 | 
						|
 | 
						|
Dispatch mapping:
 | 
						|
-----------------
 | 
						|
 | 
						|
The `mapDispatchToProps()` function maps dispatches to our store to the
 | 
						|
various props of our component. We only need to provide a dispatch for
 | 
						|
deleting notifications.
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
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));
 |