From df71dbb0242d763695ea8a33d0b2262c74b050d0 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 18 Sep 2020 22:18:21 +0900 Subject: Resolve #6692 (#6703) --- src/client/app.vue | 3 +-- src/client/components/notifications.vue | 7 +++---- src/client/deck.vue | 3 +-- src/client/pages/my-settings/index.vue | 8 +++++--- 4 files changed, 10 insertions(+), 11 deletions(-) (limited to 'src/client') diff --git a/src/client/app.vue b/src/client/app.vue index c10ba9c9d9..3453baa280 100644 --- a/src/client/app.vue +++ b/src/client/app.vue @@ -328,8 +328,7 @@ export default Vue.extend({ }, async onNotification(notification) { - const t = this.$store.state.i.includingNotificationTypes; - if (!!t && !t.includes(notification.type)) { + if (this.$store.state.i.mutingNotificationTypes.includes(notification.type)) { return; } if (document.visibilityState === 'visible') { diff --git a/src/client/components/notifications.vue b/src/client/components/notifications.vue index 07dee6354b..0e512e1967 100644 --- a/src/client/components/notifications.vue +++ b/src/client/components/notifications.vue @@ -58,7 +58,7 @@ export default Vue.extend({ computed: { allIncludeTypes() { - return this.includeTypes ?? this.$store.state.i.includingNotificationTypes; + return this.includeTypes ?? notificationTypes.filter(x => !this.$store.state.i.mutingNotificationTypes.includes(x)); } }, @@ -66,7 +66,7 @@ export default Vue.extend({ includeTypes() { this.reload(); }, - '$store.state.i.includingNotificationTypes'() { + '$store.state.i.mutingNotificationTypes'() { if (this.includeTypes === null) { this.reload(); } @@ -84,8 +84,7 @@ export default Vue.extend({ methods: { onNotification(notification) { - // - const isMuted = !!this.allIncludeTypes && !this.allIncludeTypes.includes(notification.type); + const isMuted = !this.allIncludeTypes.includes(notification.type); if (isMuted || document.visibilityState === 'visible') { this.$root.stream.send('readNotification', { id: notification.id diff --git a/src/client/deck.vue b/src/client/deck.vue index dc662801f0..c383a1b15c 100644 --- a/src/client/deck.vue +++ b/src/client/deck.vue @@ -161,8 +161,7 @@ export default Vue.extend({ }, async onNotification(notification) { - const t = this.$store.state.i.includingNotificationTypes; - if (!!t && !t.includes(notification.type)) { + if (this.$store.state.i.mutingNotificationTypes.includes(notification.type)) { return; } diff --git a/src/client/pages/my-settings/index.vue b/src/client/pages/my-settings/index.vue index 7da9f24c75..ae4ad4dff5 100644 --- a/src/client/pages/my-settings/index.vue +++ b/src/client/pages/my-settings/index.vue @@ -58,6 +58,7 @@ import XIntegration from './integration.vue'; import XApi from './api.vue'; import MkButton from '../../components/ui/button.vue'; import MkSwitch from '../../components/ui/switch.vue'; +import { notificationTypes } from '../../../types'; export default Vue.extend({ metaInfo() { @@ -114,14 +115,15 @@ export default Vue.extend({ }, async configure() { + const includingTypes = notificationTypes.filter(x => !this.$store.state.i.mutingNotificationTypes.includes(x)); this.$root.new(await import('../../components/notification-setting-window.vue').then(m => m.default), { - includingTypes: this.$store.state.i.includingNotificationTypes, + includingTypes, showGlobalToggle: false, }).$on('ok', async ({ includingTypes: value }: any) => { await this.$root.api('i/update', { - includingNotificationTypes: value, + mutingNotificationTypes: notificationTypes.filter(x => !value.includes(x)), }).then(i => { - this.$store.state.i.includingNotificationTypes = i.includingNotificationTypes; + this.$store.state.i.mutingNotificationTypes = i.mutingNotificationTypes; }).catch(err => { this.$root.dialog({ type: 'error', -- cgit v1.2.3-freya