aboutsummaryrefslogtreecommitdiff
path: root/src/components/status/status.js
diff options
context:
space:
mode:
authorshpuld <shp@cock.li>2017-11-17 02:17:47 +0200
committershpuld <shp@cock.li>2017-11-17 02:17:47 +0200
commite13c8c3fd292e5afa43f78bfff9e1bdd754c1df9 (patch)
tree5dc86bd35d39479cf8ab96bfe1379adce033843e /src/components/status/status.js
parent44073e72fdb5d253f48b6f0bb0755da89f7e4ae1 (diff)
parent86e685ac3452e42c3276e6ea2d3e7988abf2941a (diff)
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma-fe into feature/custom-theme
Diffstat (limited to 'src/components/status/status.js')
-rw-r--r--src/components/status/status.js30
1 files changed, 23 insertions, 7 deletions
diff --git a/src/components/status/status.js b/src/components/status/status.js
index 4f5093e1..12f3bb25 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -4,7 +4,7 @@ import RetweetButton from '../retweet_button/retweet_button.vue'
import DeleteButton from '../delete_button/delete_button.vue'
import PostStatusForm from '../post_status_form/post_status_form.vue'
import UserCardContent from '../user_card_content/user_card_content.vue'
-import { filter } from 'lodash'
+import { filter, find } from 'lodash'
const Status = {
props: [
@@ -20,7 +20,9 @@ const Status = {
replying: false,
expanded: false,
unmuted: false,
- userExpanded: false
+ userExpanded: false,
+ preview: null,
+ showPreview: false
}),
computed: {
muteWords () {
@@ -90,7 +92,9 @@ const Status = {
},
gotoOriginal (id) {
// only handled by conversation, not status_or_conversation
- this.$emit('goto', id)
+ if (this.inConversation) {
+ this.$emit('goto', id)
+ }
},
toggleExpanded () {
this.$emit('toggleExpanded')
@@ -102,13 +106,25 @@ const Status = {
this.userExpanded = !this.userExpanded
},
replyEnter (id, event) {
- if (this.$store.state.config.hoverPreview) {
- let rect = event.target.getBoundingClientRect()
- this.$emit('preview', Number(id), rect.left + 20, rect.top + 20 + window.pageYOffset)
+ this.showPreview = true
+ const targetId = Number(id)
+ const statuses = this.$store.state.statuses.allStatuses
+
+ if (!this.preview) {
+ // if we have the status somewhere already
+ this.preview = find(statuses, { 'id': targetId })
+ // or if we have to fetch it
+ if (!this.preview) {
+ this.$store.state.api.backendInteractor.fetchStatus({id}).then((status) => {
+ this.preview = status
+ })
+ }
+ } else if (this.preview.id !== targetId) {
+ this.preview = find(statuses, { 'id': targetId })
}
},
replyLeave () {
- this.$emit('preview', 0, 0, 0)
+ this.showPreview = false
}
},
watch: {