From a64fc62995f21a69dca319a847c554a67f7bc0a6 Mon Sep 17 00:00:00 2001 From: Ittihadyya Date: Wed, 8 Oct 2025 18:50:21 +0300 Subject: [PATCH] Added boost confirmation modal. Shortcut `b` currently works with modal, but `Shift + b` does *not* --- app/javascript/flavours/glitch/containers/status_container.js | 4 +++- .../flavours/glitch/features/local_settings/page/index.jsx | 4 ++-- app/javascript/flavours/glitch/features/status/index.jsx | 2 ++ app/javascript/flavours/glitch/locales/en.json | 2 +- app/javascript/flavours/glitch/reducers/local_settings.js | 3 +++ 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js index f6bdf9400d415e779fa82f2d2524d194f8e1c423..2250c555c85eae12cec5ce4da29a2e7e2e030012 100644 --- a/app/javascript/flavours/glitch/containers/status_container.js +++ b/app/javascript/flavours/glitch/containers/status_container.js @@ -127,7 +127,9 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ let state = getState(); if (state.getIn(['local_settings', 'confirm_boost_missing_media_description']) && status.get('media_attachments').some(item => !item.get('description')) && !status.get('reblogged')) { dispatch(initBoostModal({ status, onReblog: this.onModalReblog, missingMediaDescription: true })); - } else if (e.shiftKey || !boostModal) { + } else if (state.getIn(['local_settings', 'confirm_boost']) && !e.shiftKey && !status.get('reblogged')) { + dispatch(initBoostModal({ status, onReblog: this.onModalReblog })); + } else if ( e.shiftKey || !boostModal) { this.onModalReblog(status); } else { dispatch(initBoostModal({ status, onReblog: this.onModalReblog })); diff --git a/app/javascript/flavours/glitch/features/local_settings/page/index.jsx b/app/javascript/flavours/glitch/features/local_settings/page/index.jsx index 6124ef2cb31a6a42ee4ccf70270a72e9214a9bec..23de17cade1080ead88177bbae493ea77710273a 100644 --- a/app/javascript/flavours/glitch/features/local_settings/page/index.jsx +++ b/app/javascript/flavours/glitch/features/local_settings/page/index.jsx @@ -129,8 +129,8 @@ class LocalSettingsPage extends PureComponent { diff --git a/app/javascript/flavours/glitch/features/status/index.jsx b/app/javascript/flavours/glitch/features/status/index.jsx index 25666aeea52a65d1dbb803895891662be55a29f3..fb9c0442f5fa782eb362be3c3ab67d8abd769c98 100644 --- a/app/javascript/flavours/glitch/features/status/index.jsx +++ b/app/javascript/flavours/glitch/features/status/index.jsx @@ -357,6 +357,8 @@ class Status extends ImmutablePureComponent { if (signedIn) { if (settings.get('confirm_boost_missing_media_description') && status.get('media_attachments').some(item => !item.get('description')) && !status.get('reblogged')) { dispatch(initBoostModal({ status, onReblog: this.handleModalReblog, missingMediaDescription: true })); + } else if (settings.get('confirm_boost') && !e.shiftKey && !status.get('reblogged')) { + dispatch(initBoostModal({ status, onReblog:this.handleModalReblog})); } else if ((e && e.shiftKey) || !boostModal) { this.handleModalReblog(status); } else { diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json index 099f2d8f4bfa5e5aa193beb862e73129a05ca839..345f98f82b87e87d56d5f436a22934caf542a002 100644 --- a/app/javascript/flavours/glitch/locales/en.json +++ b/app/javascript/flavours/glitch/locales/en.json @@ -165,7 +165,7 @@ "settings.rewrite_mentions_username": "Rewrite with username", "settings.confirm_unfollow": "Show confirmation dialog before unfollowing an account", "settings.confirm_boost": "Show confirmation dialog before boosting", - "settings.confirm_delete": "Show confirmation dialog before deleting a post", + "settings.confirm_deletion": "Show confirmation dialog before deleting a post", "settings.shared_settings_link": "user preferences", "settings.show_action_bar": "Show action buttons in collapsed toots", "settings.show_content_type_choice": "Show content-type choice when authoring toots", diff --git a/app/javascript/flavours/glitch/reducers/local_settings.js b/app/javascript/flavours/glitch/reducers/local_settings.js index 16d31afb412454d08bdba4a33b33165737c8a7f0..ae73616c23f125ccf19ce4273c7f71c12a775392 100644 --- a/app/javascript/flavours/glitch/reducers/local_settings.js +++ b/app/javascript/flavours/glitch/reducers/local_settings.js @@ -22,6 +22,9 @@ const initialState = ImmutableMap({ show_content_type_choice: true, tag_misleading_links: true, rewrite_mentions: 'no', + confirm_unfollow: false, + confirm_boost: false, + confirm_deletion: false, content_warnings : ImmutableMap({ auto_unfold : false, filter : null,