split status preview popover into a separate component

This commit is contained in:
taehoon 2019-10-24 16:53:36 -04:00
parent 54a26be90c
commit 62b2648a3e
4 changed files with 136 additions and 100 deletions

View file

@ -10,11 +10,12 @@ import Gallery from '../gallery/gallery.vue'
import LinkPreview from '../link-preview/link-preview.vue'
import AvatarList from '../avatar_list/avatar_list.vue'
import Timeago from '../timeago/timeago.vue'
import StatusPopover from '../status_popover/status_popover.vue'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
import fileType from 'src/services/file_type/file_type.service'
import { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'
import { mentionMatchesUrl, extractTagFromUrl } from 'src/services/matcher/matcher.service.js'
import { filter, find, unescape, uniqBy } from 'lodash'
import { filter, unescape, uniqBy } from 'lodash'
const Status = {
name: 'Status',
@ -37,7 +38,6 @@ const Status = {
replying: false,
unmuted: false,
userExpanded: false,
preview: null,
showingTall: this.inConversation && this.focused,
showingLongSubject: false,
error: null,
@ -300,7 +300,8 @@ const Status = {
Gallery,
LinkPreview,
AvatarList,
Timeago
Timeago,
StatusPopover
},
methods: {
visibilityIcon (visibility) {
@ -375,24 +376,6 @@ const Status = {
this.expandingSubject = true
}
},
replyEnter (id, event) {
const targetId = 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
this.$nextTick(this.$refs.statusPreviewPopper.updatePopper)
})
}
} else if (this.preview.id !== targetId) {
this.preview = find(statuses, { 'id': targetId })
}
},
generateUserProfileLink (id, name) {
return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)
},