diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js
index 853775ed..e382d8f6 100644
--- a/src/components/post_status_form/post_status_form.js
+++ b/src/components/post_status_form/post_status_form.js
@@ -790,11 +790,14 @@ const PostStatusForm = {
this.postStatus(finEvent, finNewStatus, finOpts)
},
handlePost (event, newStatus, opts = {}) {
- if ((newStatus.visibility === "direct" && this.mergedConfig.modalOnDirectPost)
- || (newStatus.visibility === "private" && this.mergedConfig.modalOnPrivatePost)
- || (newStatus.visibility === "unlisted" && this.mergedConfig.modalOnUnlistedPost)
- || (newStatus.visibility === "public" && this.mergedConfig.modalOnPublicPost)
- || (newStatus.visibility === "local" && this.mergedConfig.modalOnLocalPost)) {
+ if (
+ (newStatus.visibility === "direct" && this.mergedConfig.modalOnDirectPost) ||
+ (newStatus.visibility === "private" && this.mergedConfig.modalOnPrivatePost) ||
+ (newStatus.visibility === "unlisted" && this.mergedConfig.modalOnUnlistedPost) ||
+ (newStatus.visibility === "public" && this.mergedConfig.modalOnPublicPost) ||
+ (newStatus.visibility === "local" && this.mergedConfig.modalOnLocalPost) ||
+ (newStatus.nsfw && newStatus.spoilerText === "" && this.mergedConfig.modalOnSensitiveAttachmentWithoutCW)
+ ) {
finEvent = event
finNewStatus = newStatus
finOpts = opts
diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue
index 46392eb5..a5f3355c 100644
--- a/src/components/settings_modal/tabs/general_tab.vue
+++ b/src/components/settings_modal/tabs/general_tab.vue
@@ -320,6 +320,11 @@
{{ $t('settings.confirm_dialogs_deny_follow') }}
+
+
+ {{ $t('settings.confirm_dialogs_sensitive_attachment_without_cw') }}
+
+
diff --git a/src/i18n/en.json b/src/i18n/en.json
index c85d450e..712154cf 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -516,14 +516,15 @@
"confirm_dialogs_delete": "Deleting a post",
"confirm_dialogs_deny_follow": "Rejecting a follow request",
"confirm_dialogs_mute": "Muting someone",
+ "confirm_dialogs_repeat": "Boosting a post",
+ "confirm_dialogs_unfollow": "Unfollowing someone",
+ "confirm_dialogs_sensitive_attachment_without_cw": "Posting with an attachment marked \"sensitive\" without a CW",
"confirm_visibility_dialogs": "Visibility confirmations:",
"confirm_visibility_dialogs_direct_post": "Posting with \"direct\" visibility",
"confirm_visibility_dialogs_private_post": "Posting with \"private\" visibility",
"confirm_visibility_dialogs_unlisted_post": "Posting with \"unlisted\" visibility",
"confirm_visibility_dialogs_public_post": "Posting with \"public\" visibility",
"confirm_visibility_dialogs_local_post": "Posting with \"local\" visibility",
- "confirm_dialogs_repeat": "Boosting a post",
- "confirm_dialogs_unfollow": "Unfollowing someone",
"confirm_new_password": "Confirm new password",
"confirmation_dialogs": "Confirmation options",
"conversation_display": "Conversation display style",
diff --git a/src/modules/config.js b/src/modules/config.js
index 4dee4468..8bc8910b 100644
--- a/src/modules/config.js
+++ b/src/modules/config.js
@@ -90,6 +90,7 @@ export const defaultState = {
modalOnLogout: undefined, // instance default
modalOnApproveFollow: undefined, // instance default
modalOnDenyFollow: undefined, // instance default
+ modalOnSensitiveAttachmentWithoutCW: undefined, // instance default
modalOnDirectPost: undefined, // instance default
modalOnPrivatePost: undefined, // instance default
modalOnUnlistedPost: undefined, // instance default
diff --git a/src/modules/instance.js b/src/modules/instance.js
index e75882b2..9eeb28c9 100644
--- a/src/modules/instance.js
+++ b/src/modules/instance.js
@@ -47,6 +47,7 @@ const defaultState = {
modalOnLogout: true,
modalOnApproveFollow: false,
modalOnDenyFollow: false,
+ modalOnSensitiveAttachmentWithoutCW: false,
modalOnDirectPost: false,
modalOnPrivatePost: false,
modalOnUnlistedPost: false,