aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordave <starpumadev@gmail.com>2019-03-27 16:00:54 -0400
committerdave <starpumadev@gmail.com>2019-03-27 16:00:54 -0400
commit43e97e590c98d1f1bb500f96d2b604b968fbbbb3 (patch)
tree60ea44571b61d1c2f4bc47b3128e448a20e8386f
parent0e2931e7de48d2e01aa8256f5f3f796c7d474865 (diff)
#433 - sort conversation for retweets and clean up
-rw-r--r--src/components/conversation/conversation.js18
-rw-r--r--src/components/status/status.vue4
2 files changed, 7 insertions, 15 deletions
diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js
index 8ad1f44d..5357b67f 100644
--- a/src/components/conversation/conversation.js
+++ b/src/components/conversation/conversation.js
@@ -3,19 +3,9 @@ import { set } from 'vue'
import Status from '../status/status.vue'
const sortById = (a, b) => {
- const seqA = Number(a.id)
- const seqB = Number(b.id)
- const isSeqA = !Number.isNaN(seqA)
- const isSeqB = !Number.isNaN(seqB)
- if (isSeqA && isSeqB) {
- return seqA < seqB ? -1 : 1
- } else if (isSeqA && !isSeqB) {
- return -1
- } else if (!isSeqA && isSeqB) {
- return 1
- } else {
- return a.id < b.id ? -1 : 1
- }
+ const idA = a.type === 'retweet' ? a.retweeted_status.id : a.id
+ const idB = b.type === 'retweet' ? b.retweeted_status.id : b.id
+ return idA < idB ? -1 : 1
}
const sortAndFilterConversation = (conversation, statusoid) => {
@@ -24,6 +14,8 @@ const sortAndFilterConversation = (conversation, statusoid) => {
conversation,
(status) => (status.type === 'retweet' || status.id !== statusoid.retweeted_status.id)
)
+ } else {
+ conversation = filter(conversation, (status) => status.type !== 'retweet')
}
return conversation.filter(_ => _).sort(sortById)
}
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 1f6d0325..da329deb 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -12,7 +12,7 @@
</div>
</template>
<template v-else>
- <div v-if="retweet && !noHeading" :class="[repeaterClass, { highlighted: repeaterStyle }]" :style="[repeaterStyle]" class="media container retweet-info">
+ <div v-if="retweet && !noHeading && !inConversation" :class="[repeaterClass, { highlighted: repeaterStyle }]" :style="[repeaterStyle]" class="media container retweet-info">
<UserAvatar class="media-left" v-if="retweet" :betterShadow="betterShadow" :src="statusoid.user.profile_image_url_original"/>
<div class="media-body faint">
<span class="user-name">
@@ -24,7 +24,7 @@
</div>
</div>
- <div :class="[userClass, { highlighted: userStyle, 'is-retweet': retweet }]" :style="[ userStyle ]" class="media status">
+ <div :class="[userClass, { highlighted: userStyle, 'is-retweet': retweet && !inConversation }]" :style="[ userStyle ]" class="media status">
<div v-if="!noHeading" class="media-left">
<router-link :to="userProfileLink" @click.stop.prevent.capture.native="toggleUserExpanded">
<UserAvatar :compact="compact" :betterShadow="betterShadow" :src="status.user.profile_image_url_original"/>