summaryrefslogtreecommitdiff
path: root/src/client/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/components')
-rw-r--r--src/client/components/notification.vue9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/client/components/notification.vue b/src/client/components/notification.vue
index d0c85b6e2e..3c6b8524ea 100644
--- a/src/client/components/notification.vue
+++ b/src/client/components/notification.vue
@@ -90,6 +90,7 @@ export default Vue.extend({
getNoteSummary: (text: string) => noteSummary(text, this.$root.i18n.messages[this.$root.i18n.locale]),
followRequestDone: false,
groupInviteDone: false,
+ connection: null,
readObserver: new IntersectionObserver((entries, observer) => {
if (!entries.some(entry => entry.isIntersecting)) return;
this.$root.stream.send('readNotification', {
@@ -102,11 +103,17 @@ export default Vue.extend({
},
mounted() {
- if (!this.notification.isRead) this.readObserver.observe(this.$el);
+ if (!this.notification.isRead) {
+ this.readObserver.observe(this.$el);
+
+ this.connection = this.$root.stream.useSharedConnection('main');
+ this.connection.on('readAllNotifications', () => this.readObserver.unobserve(this.$el));
+ }
},
beforeDestroy() {
if (!this.notification.isRead) this.readObserver.unobserve(this.$el);
+ this.connection.dispose();
},
methods: {