diff options
| author | shpuld <shp@cock.li> | 2017-11-17 02:17:47 +0200 |
|---|---|---|
| committer | shpuld <shp@cock.li> | 2017-11-17 02:17:47 +0200 |
| commit | e13c8c3fd292e5afa43f78bfff9e1bdd754c1df9 (patch) | |
| tree | 5dc86bd35d39479cf8ab96bfe1379adce033843e /src/components/status/status.js | |
| parent | 44073e72fdb5d253f48b6f0bb0755da89f7e4ae1 (diff) | |
| parent | 86e685ac3452e42c3276e6ea2d3e7988abf2941a (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.js | 30 |
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: { |
