Make message hiding togglable
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful

This commit is contained in:
Sol Fisher Romanoff 2022-06-27 14:51:59 +03:00
parent ca3e1d165d
commit 9bb22c71c4
No known key found for this signature in database
GPG key ID: 9D3F2B64F2341B62
4 changed files with 17 additions and 3 deletions

View file

@ -65,6 +65,14 @@
{{ $t('settings.enable_web_push_notifications') }}
</BooleanSetting>
</li>
<li>
<BooleanSetting
path="webPushHideIfCW"
expert="1"
>
{{ $t('settings.notification_setting_hide_if_cw') }}
</BooleanSetting>
</li>
<li>
<BooleanSetting
path="serverSide_webPushHideContents"

View file

@ -546,6 +546,7 @@
"notification_setting_block_from_strangers": "Block notifications from users who you do not follow",
"notification_setting_privacy": "Privacy",
"notification_setting_hide_notification_contents": "Hide the sender and contents of push notifications",
"notification_setting_hide_if_cw": "Hide the contents of push notifications if under a Content Warning",
"notification_mutes": "To stop receiving notifications from a specific user, use a mute.",
"notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.",
"enable_web_push_notifications": "Enable web push notifications",

View file

@ -63,6 +63,7 @@ export const defaultState = {
polls: true
},
webPushNotifications: false,
webPushHideIfCW: true,
muteWords: [],
highlight: {},
interfaceLanguage: browserLocale,

View file

@ -58,7 +58,7 @@ export const maybeShowNotification = (store, notification) => {
if (!visibleTypes(store).includes(notification.type)) return
if (notification.type === 'mention' && isMutedNotification(store, notification)) return
const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)
const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n, store)
showDesktopNotification(rootState, notificationObject)
}
@ -74,7 +74,7 @@ export const filteredNotificationsFromStore = (store, types) => {
export const unseenNotificationsFromStore = store =>
filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)
export const prepareNotificationObject = (notification, i18n) => {
export const prepareNotificationObject = (notification, i18n, store) => {
const notifObj = {
tag: notification.id
}
@ -110,7 +110,11 @@ export const prepareNotificationObject = (notification, i18n) => {
notifObj.body = i18n.t('notifications.' + i18nString)
} else if (isStatusNotification(notification.type)) {
if (notification.status.summary) {
if (store.getters.mergedConfig.webPushHideIfCW) {
notifObj.body = notification.status.summary
} else {
notifObj.body = `${notification.status.summary}:\n${notification.status.text}`
}
} else {
notifObj.body = notification.status.text
}