From 86773579ed924e0a8a38eac4812f1bc10e353870 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Fri, 28 Jul 2017 11:19:56 +0200 Subject: Throttle getReplies so it isn't called that often. --- src/components/conversation/conversation.js | 32 +++++++++++++++-------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'src/components/conversation/conversation.js') diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index 059028f9..701bfd93 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -1,4 +1,4 @@ -import { find, filter, sortBy } from 'lodash' +import { find, filter, sortBy, throttle } from 'lodash' import { statusType } from '../../modules/statuses.js' import Status from '../status/status.vue' @@ -7,6 +7,21 @@ const sortAndFilterConversation = (conversation) => { return sortBy(conversation, 'id') } +const getReplies = function (id) { + let res = [] + id = Number(id) + let i + for (i = 0; i < this.conversation.length; i++) { + if (Number(this.conversation[i].in_reply_to_status_id) === id) { + res.push({ + name: `#${i}`, + id: this.conversation[i].id + }) + } + } + return res +} + const conversation = { data () { return { @@ -58,20 +73,7 @@ const conversation = { .then(() => this.fetchConversation()) } }, - getReplies (id) { - let res = [] - id = Number(id) - let i - for (i = 0; i < this.conversation.length; i++) { - if (Number(this.conversation[i].in_reply_to_status_id) === id) { - res.push({ - name: `#${i}`, - id: this.conversation[i].id - }) - } - } - return res - }, + getReplies: throttle(getReplies, 1000), focused (id) { if (this.statusoid.retweeted_status) { return (id === this.statusoid.retweeted_status.id) -- cgit v1.2.3-70-g09d2 From 9e61ab577b98643e6c0c88785f365c554b3ab8b1 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Fri, 28 Jul 2017 15:52:05 +0200 Subject: Revert "Throttle getReplies so it isn't called that often." This reverts commit 86773579ed924e0a8a38eac4812f1bc10e353870. --- src/components/conversation/conversation.js | 32 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'src/components/conversation/conversation.js') diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index 701bfd93..059028f9 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -1,4 +1,4 @@ -import { find, filter, sortBy, throttle } from 'lodash' +import { find, filter, sortBy } from 'lodash' import { statusType } from '../../modules/statuses.js' import Status from '../status/status.vue' @@ -7,21 +7,6 @@ const sortAndFilterConversation = (conversation) => { return sortBy(conversation, 'id') } -const getReplies = function (id) { - let res = [] - id = Number(id) - let i - for (i = 0; i < this.conversation.length; i++) { - if (Number(this.conversation[i].in_reply_to_status_id) === id) { - res.push({ - name: `#${i}`, - id: this.conversation[i].id - }) - } - } - return res -} - const conversation = { data () { return { @@ -73,7 +58,20 @@ const conversation = { .then(() => this.fetchConversation()) } }, - getReplies: throttle(getReplies, 1000), + getReplies (id) { + let res = [] + id = Number(id) + let i + for (i = 0; i < this.conversation.length; i++) { + if (Number(this.conversation[i].in_reply_to_status_id) === id) { + res.push({ + name: `#${i}`, + id: this.conversation[i].id + }) + } + } + return res + }, focused (id) { if (this.statusoid.retweeted_status) { return (id === this.statusoid.retweeted_status.id) -- cgit v1.2.3-70-g09d2 From 32e20b2e025e20f38b4acdea55a13a647463a9f1 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sat, 29 Jul 2017 18:53:49 +0200 Subject: Only run through replies once. --- src/components/conversation/conversation.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'src/components/conversation/conversation.js') diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index 059028f9..4ee6c32e 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -1,4 +1,4 @@ -import { find, filter, sortBy } from 'lodash' +import { reduce, find, filter, sortBy } from 'lodash' import { statusType } from '../../modules/statuses.js' import Status from '../status/status.vue' @@ -33,6 +33,19 @@ const conversation = { const statuses = this.$store.state.statuses.allStatuses const conversation = filter(statuses, { statusnet_conversation_id: conversationId }) return sortAndFilterConversation(conversation) + }, + replies () { + return reduce(this.conversation, (result, {id, in_reply_to_status_id}) => { + const irid = Number(in_reply_to_status_id) + if (irid) { + result[irid] = result[irid] || [] + result[irid].push({ + name: `#${id}`, + id: id + }) + } + return result + }, {}) } }, components: { @@ -59,18 +72,8 @@ const conversation = { } }, getReplies (id) { - let res = [] id = Number(id) - let i - for (i = 0; i < this.conversation.length; i++) { - if (Number(this.conversation[i].in_reply_to_status_id) === id) { - res.push({ - name: `#${i}`, - id: this.conversation[i].id - }) - } - } - return res + return this.replies[id] || [] }, focused (id) { if (this.statusoid.retweeted_status) { -- cgit v1.2.3-70-g09d2 From 9c5f001fd2bfd8a2d06e36f6dd1b7ac0c41e5cd2 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sat, 29 Jul 2017 19:10:09 +0200 Subject: Add back relative numbering. --- src/components/conversation/conversation.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/components/conversation/conversation.js') diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index 4ee6c32e..89fcfddb 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -35,15 +35,17 @@ const conversation = { return sortAndFilterConversation(conversation) }, replies () { + let i = 1 return reduce(this.conversation, (result, {id, in_reply_to_status_id}) => { const irid = Number(in_reply_to_status_id) if (irid) { result[irid] = result[irid] || [] result[irid].push({ - name: `#${id}`, + name: `#${i}`, id: id }) } + i++ return result }, {}) } -- cgit v1.2.3-70-g09d2