Make mention strings work.

This commit is contained in:
Roger Braun 2016-11-03 17:17:32 +01:00
parent 7e2c52b12c
commit 9ff8bf4c14
2 changed files with 31 additions and 3 deletions

View file

@ -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: {

View file

@ -45,7 +45,7 @@
<favorite-button :status=status></favorite-button> <favorite-button :status=status></favorite-button>
</div> </div>
<post-status-form v-if="replying" :reply-to="status.id"></post-status-form> <post-status-form v-if="replying" :reply-to="status.id" :attentions="status.attentions" :repliedUser="status.user"></post-status-form>
</div> </div>
</div> </div>
</div> </div>