From f6154dc0af1a0d65819e87240f4385f9573095cb Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 30 Jan 2020 04:37:25 +0900 Subject: v12 (#5712) Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com> Co-authored-by: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com> --- src/client/app/common/scripts/note-subscriber.ts | 149 ----------------------- 1 file changed, 149 deletions(-) delete mode 100644 src/client/app/common/scripts/note-subscriber.ts (limited to 'src/client/app/common/scripts/note-subscriber.ts') diff --git a/src/client/app/common/scripts/note-subscriber.ts b/src/client/app/common/scripts/note-subscriber.ts deleted file mode 100644 index 5b31a9f9d0..0000000000 --- a/src/client/app/common/scripts/note-subscriber.ts +++ /dev/null @@ -1,149 +0,0 @@ -import Vue from 'vue'; - -export default prop => ({ - data() { - return { - connection: null - }; - }, - - computed: { - $_ns_note_(): any { - return this[prop]; - }, - - $_ns_isRenote(): boolean { - return (this.$_ns_note_.renote != null && - this.$_ns_note_.text == null && - this.$_ns_note_.fileIds.length == 0 && - this.$_ns_note_.poll == null); - }, - - $_ns_target(): any { - return this.$_ns_isRenote ? this.$_ns_note_.renote : this.$_ns_note_; - }, - }, - - created() { - if (this.$store.getters.isSignedIn) { - this.connection = this.$root.stream; - } - }, - - mounted() { - this.capture(true); - - if (this.$store.getters.isSignedIn) { - this.connection.on('_connected_', this.onStreamConnected); - } - }, - - beforeDestroy() { - this.decapture(true); - - if (this.$store.getters.isSignedIn) { - this.connection.off('_connected_', this.onStreamConnected); - } - }, - - methods: { - capture(withHandler = false) { - if (this.$store.getters.isSignedIn) { - const data = { - id: this.$_ns_target.id - } as any; - - if ( - (this.$_ns_target.visibleUserIds || []).includes(this.$store.state.i.id) || - (this.$_ns_target.mentions || []).includes(this.$store.state.i.id) - ) { - data.read = true; - } - - this.connection.send('sn', data); - if (withHandler) this.connection.on('noteUpdated', this.onStreamNoteUpdated); - } - }, - - decapture(withHandler = false) { - if (this.$store.getters.isSignedIn) { - this.connection.send('un', { - id: this.$_ns_target.id - }); - if (withHandler) this.connection.off('noteUpdated', this.onStreamNoteUpdated); - } - }, - - onStreamConnected() { - this.capture(); - }, - - onStreamNoteUpdated(data) { - const { type, id, body } = data; - - if (id !== this.$_ns_target.id) return; - - switch (type) { - case 'reacted': { - const reaction = body.reaction; - - if (this.$_ns_target.reactions == null) { - Vue.set(this.$_ns_target, 'reactions', {}); - } - - if (this.$_ns_target.reactions[reaction] == null) { - Vue.set(this.$_ns_target.reactions, reaction, 0); - } - - // Increment the count - this.$_ns_target.reactions[reaction]++; - - if (body.userId == this.$store.state.i.id) { - Vue.set(this.$_ns_target, 'myReaction', reaction); - } - break; - } - - case 'unreacted': { - const reaction = body.reaction; - - if (this.$_ns_target.reactions == null) { - return; - } - - if (this.$_ns_target.reactions[reaction] == null) { - return; - } - - // Decrement the count - if (this.$_ns_target.reactions[reaction] > 0) this.$_ns_target.reactions[reaction]--; - - if (body.userId == this.$store.state.i.id) { - Vue.set(this.$_ns_target, 'myReaction', null); - } - break; - } - - case 'pollVoted': { - const choice = body.choice; - this.$_ns_target.poll.choices[choice].votes++; - if (body.userId == this.$store.state.i.id) { - Vue.set(this.$_ns_target.poll.choices[choice], 'isVoted', true); - } - break; - } - - case 'deleted': { - Vue.set(this.$_ns_target, 'deletedAt', body.deletedAt); - Vue.set(this.$_ns_target, 'renote', null); - this.$_ns_target.text = null; - this.$_ns_target.fileIds = []; - this.$_ns_target.poll = null; - this.$_ns_target.geo = null; - this.$_ns_target.cw = null; - break; - } - } - }, - } -}); -- cgit v1.2.3-freya