diff options
| author | Henry Jameson <me@hjkos.com> | 2021-06-08 11:38:44 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2021-06-08 11:38:44 +0300 |
| commit | 3abd357694c29c84d213d7d2a7a954ab2a591da0 (patch) | |
| tree | 99aeb473297ff303198ce7134369ede5de0cbb9e /src/components/rich_content | |
| parent | 0583a6b8638afc6b3ea07adceecdb42ca9188251 (diff) | |
moving mentions into separate row
Diffstat (limited to 'src/components/rich_content')
| -rw-r--r-- | src/components/rich_content/rich_content.jsx | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx index c15877c8..86a318bd 100644 --- a/src/components/rich_content/rich_content.jsx +++ b/src/components/rich_content/rich_content.jsx @@ -33,21 +33,32 @@ export default Vue.component('RichContent', { class="img" /> } - const renderMention = (attrs, children) => { + const renderMention = (attrs, children, encounteredText) => { return <MentionLink url={attrs.href} content={flattenDeep(children).join('')} + firstMention={!encounteredText} origattrs={attrs} /> } + let encounteredText = false // Processor to use with mini_html_converter const processItem = (item) => { // Handle text noes - just add emoji if (typeof item === 'string') { + const emptyText = item.trim() + if (!emptyText) { + return encounteredText ? item : item.trim() + } + let unescapedItem = unescape(item) + if (!encounteredText) { + unescapedItem = unescapedItem.trimStart() + encounteredText = true + } if (item.includes(':')) { return processTextForEmoji( - unescape(item), + unescapedItem, this.emoji, ({ shortcode, url }) => { return <StillImage @@ -59,7 +70,7 @@ export default Vue.component('RichContent', { } ) } else { - return unescape(item) + return unescapedItem } } // Handle tag nodes @@ -73,7 +84,7 @@ export default Vue.component('RichContent', { if (!this.handleLinks) break const attrs = getAttrs(opener) if (attrs['class'] && attrs['class'].includes('mention')) { - return renderMention(attrs, children) + return renderMention(attrs, children, encounteredText) } } // Render tag as is |
