diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-09-04 12:59:34 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-09-04 12:59:34 +0900 |
| commit | 6abff253ea718acc73ba3d1feca53161923319ae (patch) | |
| tree | 3f1f18672d2f748094743ddf6a170c777d01fdc1 /src/client/app/common | |
| parent | Fix bug (diff) | |
| download | misskey-6abff253ea718acc73ba3d1feca53161923319ae.tar.gz misskey-6abff253ea718acc73ba3d1feca53161923319ae.tar.bz2 misskey-6abff253ea718acc73ba3d1feca53161923319ae.zip | |
トップページのタイムラインをリアルタイム更新するように
Diffstat (limited to 'src/client/app/common')
| -rw-r--r-- | src/client/app/common/scripts/streaming/local-timeline.ts | 4 | ||||
| -rw-r--r-- | src/client/app/common/views/components/welcome-timeline.vue | 30 |
2 files changed, 28 insertions, 6 deletions
diff --git a/src/client/app/common/scripts/streaming/local-timeline.ts b/src/client/app/common/scripts/streaming/local-timeline.ts index 2834262bdc..41c36aa14c 100644 --- a/src/client/app/common/scripts/streaming/local-timeline.ts +++ b/src/client/app/common/scripts/streaming/local-timeline.ts @@ -7,9 +7,9 @@ import MiOS from '../../../mios'; */ export class LocalTimelineStream extends Stream { constructor(os: MiOS, me) { - super(os, 'local-timeline', { + super(os, 'local-timeline', me ? { i: me.token - }); + } : {}); } } diff --git a/src/client/app/common/views/components/welcome-timeline.vue b/src/client/app/common/views/components/welcome-timeline.vue index 5a8b9df476..d4e7902c7b 100644 --- a/src/client/app/common/views/components/welcome-timeline.vue +++ b/src/client/app/common/views/components/welcome-timeline.vue @@ -31,15 +31,30 @@ export default Vue.extend({ default: undefined } }, + data() { return { fetching: true, - notes: [] + notes: [], + connection: null, + connectionId: null }; }, + mounted() { this.fetch(); + + this.connection = (this as any).os.streams.localTimelineStream.getConnection(); + this.connectionId = (this as any).os.streams.localTimelineStream.use(); + + this.connection.on('note', this.onNote); + }, + + beforeDestroy() { + this.connection.off('note', this.onNote); + (this as any).os.streams.localTimelineStream.dispose(this.connectionId); }, + methods: { fetch(cb?) { this.fetching = true; @@ -49,13 +64,20 @@ export default Vue.extend({ reply: false, renote: false, media: false, - poll: false, - bot: false + poll: false }).then(notes => { this.notes = notes; this.fetching = false; }); - } + }, + + onNote(note) { + if (note.replyId != null) return; + if (note.renoteId != null) return; + if (note.poll != null) return; + + this.notes.unshift(note); + }, } }); </script> |