logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe
commit: 9ff8bf4c143f849635d64f5d0344ff999908fe34
parent: 7e2c52b12cf6883f32716230b0fdcdad7a26632b
Author: Roger Braun <roger@rogerbraun.net>
Date:   Thu,  3 Nov 2016 17:17:32 +0100

Make mention strings work.

Diffstat:

Msrc/components/post_status_form/post_status_form.js32++++++++++++++++++++++++++++++--
Msrc/components/status/status.vue2+-
2 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js @@ -1,12 +1,40 @@ 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 = { props: [ - 'replyTo' + 'replyTo', + 'repliedUser', + 'attentions' ], data () { + let statusText = '' + + if (this.replyTo) { + const currentUser = this.$store.state.users.currentUser + statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser) + } + return { - newStatus: { } + newStatus: { + status: statusText + } } }, methods: { diff --git a/src/components/status/status.vue b/src/components/status/status.vue @@ -45,7 +45,7 @@ <favorite-button :status=status></favorite-button> </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>