support richcontent in polls

This commit is contained in:
Henry Jameson 2021-08-13 12:19:57 +03:00
parent add5921b8b
commit 6c6df29ed3
4 changed files with 11 additions and 9 deletions

View File

@ -1,10 +1,14 @@
import Timeago from '../timeago/timeago.vue'
import Timeago from 'components/timeago/timeago.vue'
import RichContent from 'components/rich_content/rich_content.jsx'
import { forEach, map } from 'lodash'
export default {
name: 'Poll',
props: ['basePoll'],
components: { Timeago },
props: ['basePoll', 'emoji'],
components: {
Timeago,
RichContent
},
data () {
return {
loading: false,

View File

@ -17,8 +17,7 @@
<span class="result-percentage">
{{ percentageForOption(option.votes_count) }}%
</span>
<!-- eslint-disable-next-line vue/no-v-html -->
<span v-html="option.title_html" />
<RichContent :html="option.title_html" :handle-links="false" :emoji="emoji" />
</div>
<div
class="result-fill"
@ -42,8 +41,7 @@
:value="index"
>
<label class="option-vote">
<!-- eslint-disable-next-line vue/no-v-html -->
<div v-html="option.title_html" />
<RichContent :html="option.title_html" :handle-links="false" :emoji="emoji" />
</label>
</div>
</div>

View File

@ -7,7 +7,7 @@
@parseReady="$emit('parseReady', $event)"
>
<div v-if="status.poll && status.poll.options">
<poll :base-poll="status.poll" />
<poll :base-poll="status.poll" :emoji="status.emojis" />
</div>
<div

View File

@ -301,7 +301,7 @@ export const parseStatus = (data) => {
if (output.poll) {
output.poll.options = (output.poll.options || []).map(field => ({
...field,
title_html: addEmojis(escape(field.title), data.emojis)
title_html: escape(field.title)
}))
}
output.pinned = data.pinned