diff --git a/src/components/mentions_line/mentions_line.scss b/src/components/mentions_line/mentions_line.scss index 222940c803..50eb0c2755 100644 --- a/src/components/mentions_line/mentions_line.scss +++ b/src/components/mentions_line/mentions_line.scss @@ -4,7 +4,7 @@ color: var(--link); } - .mention-link:not(:last-child) { + .mention-link { margin-right: 0.25em; } } diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx index 1353541fcc..8ab007e391 100644 --- a/src/components/rich_content/rich_content.jsx +++ b/src/components/rich_content/rich_content.jsx @@ -121,6 +121,13 @@ export default Vue.component('RichContent', { // in MentionsLine return currentMentions !== null ? item.trim() : item } + // We add space with mentionsLine, otherwise non-text elements will + // stick to them. + if (currentMentions !== null) { + // single whitespace trim + item = item[0].match(/\s/) ? item.slice(1) : item + } + currentMentions = null if (item.includes(':')) { item = ['', processTextForEmoji( diff --git a/test/unit/specs/components/rich_content.spec.js b/test/unit/specs/components/rich_content.spec.js index b29edeab4a..c84df34b60 100644 --- a/test/unit/specs/components/rich_content.spec.js +++ b/test/unit/specs/components/rich_content.spec.js @@ -59,7 +59,7 @@ describe('RichContent', () => { it('replaces mention with mentionsline', () => { const html = p( makeMention('John'), - ' how are you doing today?' + ' how are you doing today?' // also testing single-trimming function ) const wrapper = shallowMount(RichContent, { localVue, @@ -74,7 +74,7 @@ describe('RichContent', () => { expect(wrapper.html()).to.eql(compwrap(p( mentionsLine(1), - ' how are you doing today?' + ' how are you doing today?' // space removed to compensate for padding ))) })