aboutsummaryrefslogtreecommitdiff
path: root/src/components/status/status.js
diff options
context:
space:
mode:
authorlambadalambda <gitgud@rogerbraun.net>2017-04-12 13:14:43 -0400
committerlambadalambda <gitgud@rogerbraun.net>2017-04-12 13:14:43 -0400
commit7a948ba3a56e2d4e7122b0ef23e2f9c4f0cb94d8 (patch)
tree511a5564cd24332d3492561553df07a2517751cc /src/components/status/status.js
parent9ed445fff07f0b0315d7895a2fd3acf1be1bd529 (diff)
parentd8a01454dc4c0613fc2310beea6c9a82da8e679f (diff)
Merge branch 'feature/reply-navigation' into 'develop'
Reply navigation (up only) See merge request !70
Diffstat (limited to 'src/components/status/status.js')
-rw-r--r--src/components/status/status.js31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/components/status/status.js b/src/components/status/status.js
index bb026fe1..5e7bde53 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -11,7 +11,8 @@ const Status = {
'statusoid',
'expandable',
'inConversation',
- 'focused'
+ 'focused',
+ 'highlight'
],
data: () => ({
replying: false,
@@ -53,6 +54,16 @@ const Status = {
return {
borderBottomColor: this.$store.state.config.colors['base02']
}
+ },
+ isFocused () {
+ // retweet or root of an expanded conversation
+ if (this.focused) {
+ return true
+ } else if (!this.inConversation) {
+ return false
+ }
+ // use conversation highlight only when in conversation
+ return this.status.id === this.highlight
}
},
components: {
@@ -75,6 +86,10 @@ const Status = {
toggleReplying () {
this.replying = !this.replying
},
+ gotoOriginal () {
+ // only handled by conversation, not status_or_conversation
+ this.$emit('goto', this.status.in_reply_to_status_id)
+ },
toggleExpanded () {
this.$emit('toggleExpanded')
},
@@ -84,6 +99,20 @@ const Status = {
toggleUserExpanded () {
this.userExpanded = !this.userExpanded
}
+ },
+ watch: {
+ 'highlight': function (id) {
+ id = Number(id)
+ if (this.status.id === id) {
+ let rect = this.$el.getBoundingClientRect()
+ if (rect.top < 100) {
+ window.scrollBy(0, rect.top - 200)
+ } else if (rect.bottom > window.innerHeight - 100) {
+ // will be useful when scrolling down to replies or root posts is in
+ window.scrollBy(0, rect.bottom + 200)
+ }
+ }
+ }
}
}