about summary refs log tree commit diff
path: root/app/javascript/mastodon/features/notifications/containers/column_settings_container.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/javascript/mastodon/features/notifications/containers/column_settings_container.js')
-rw-r--r--app/javascript/mastodon/features/notifications/containers/column_settings_container.js20
1 files changed, 18 insertions, 2 deletions
diff --git a/app/javascript/mastodon/features/notifications/containers/column_settings_container.js b/app/javascript/mastodon/features/notifications/containers/column_settings_container.js
index 76991d541..b139d4615 100644
--- a/app/javascript/mastodon/features/notifications/containers/column_settings_container.js
+++ b/app/javascript/mastodon/features/notifications/containers/column_settings_container.js
@@ -1,12 +1,20 @@
 import { connect } from 'react-redux';
+import { defineMessages, injectIntl } from 'react-intl';
 import ColumnSettings from '../components/column_settings';
 import { changeSetting, saveSettings } from '../../../actions/settings';
+import { clearNotifications } from '../../../actions/notifications';
+import { openModal } from '../../../actions/modal';
+
+const messages = defineMessages({
+  clearMessage: { id: 'notifications.clear_confirmation', defaultMessage: 'Are you sure you want to permanently clear all your notifications?' },
+  clearConfirm: { id: 'notifications.clear', defaultMessage: 'Clear notifications' },
+});
 
 const mapStateToProps = state => ({
   settings: state.getIn(['settings', 'notifications']),
 });
 
-const mapDispatchToProps = dispatch => ({
+const mapDispatchToProps = (dispatch, { intl }) => ({
 
   onChange (key, checked) {
     dispatch(changeSetting(['notifications', ...key], checked));
@@ -16,6 +24,14 @@ const mapDispatchToProps = dispatch => ({
     dispatch(saveSettings());
   },
 
+  onClear () {
+    dispatch(openModal('CONFIRM', {
+      message: intl.formatMessage(messages.clearMessage),
+      confirm: intl.formatMessage(messages.clearConfirm),
+      onConfirm: () => dispatch(clearNotifications()),
+    }));
+  },
+
 });
 
-export default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings);
+export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(ColumnSettings));