|
|
@ -1,12 +1,40 @@
|
|
|
|
import statusPoster from '../../services/status_poster/status_poster.service.js'
|
|
|
|
import statusPoster from '../../services/status_poster/status_poster.service.js'
|
|
|
|
|
|
|
|
import { reject, map, uniqBy } from 'lodash';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const buildMentionsString = ({user, attentions}, currentUser) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let allAttentions = [...attentions]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
allAttentions.unshift(user)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
allAttentions = uniqBy(allAttentions, 'id')
|
|
|
|
|
|
|
|
allAttentions = reject(allAttentions, {id: currentUser.id})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let mentions = map(allAttentions, (attention) => {
|
|
|
|
|
|
|
|
return `@${attention.screen_name}`
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return mentions.join(' ') + ' '
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const PostStatusForm = {
|
|
|
|
const PostStatusForm = {
|
|
|
|
props: [
|
|
|
|
props: [
|
|
|
|
'replyTo'
|
|
|
|
'replyTo',
|
|
|
|
|
|
|
|
'repliedUser',
|
|
|
|
|
|
|
|
'attentions'
|
|
|
|
],
|
|
|
|
],
|
|
|
|
data () {
|
|
|
|
data () {
|
|
|
|
|
|
|
|
let statusText = ''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (this.replyTo) {
|
|
|
|
|
|
|
|
const currentUser = this.$store.state.users.currentUser
|
|
|
|
|
|
|
|
statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
newStatus: { }
|
|
|
|
newStatus: {
|
|
|
|
|
|
|
|
status: statusText
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
methods: {
|
|
|
|