diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx
index c8e1af9c32..ce562f1370 100644
--- a/src/components/rich_content/rich_content.jsx
+++ b/src/components/rich_content/rich_content.jsx
@@ -164,17 +164,15 @@ export default Vue.component('RichContent', {
case 'a': // replace mentions with MentionLink
if (!this.handleLinks) break
if (attrs['class'] && attrs['class'].includes('mention')) {
+ // Handling mentions here
return renderMention(attrs, children, encounteredText)
- } else if (attrs['class'] && attrs['class'].includes('hashtag')) {
+ } else {
+ // Everything else will be handled in reverse pass
encounteredText = true
return item // We'll handle it later
- } else {
- attrs.target = '_blank'
- return
- { children.map(processItem) }
-
}
}
+
if (children !== undefined) {
return [opener, children.map(processItem), closer]
} else {
@@ -203,16 +201,28 @@ export default Vue.component('RichContent', {
// should only be this
if (attrs['class'] && attrs['class'].includes('hashtag')) {
return renderHashtag(attrs, children, encounteredTextReverse)
+ } else {
+ attrs.target = '_blank'
+ html.includes('freenode') && console.log('PASS1', children)
+ const newChildren = [...children].reverse().map(processItemReverse).reverse()
+ html.includes('freenode') && console.log('PASS1b', newChildren)
+
+ return
+ { newChildren }
+
}
- break
case '':
return [...children].reverse().map(processItemReverse).reverse()
}
// Render tag as is
if (children !== undefined) {
+ html.includes('freenode') && console.log('PASS2', children)
+ const newChildren = Array.isArray(children)
+ ? [...children].reverse().map(processItemReverse).reverse()
+ : children
return
', + 'Freenode is dead.
', + '', + '', + '', + 'https://', + '', + 'isfreenodedeadyet.com/', + '', + '', + '', + '
' + ].join('') + const expected = [ + '', + 'Freenode is dead.
', + '', + '', + '', + 'https://', + '', + 'isfreenodedeadyet.com/', + '', + '', + '', + '
' + ].join('') + + const wrapper = shallowMount(RichContent, { + localVue, + propsData: { + hideMentions: false, + handleLinks: true, + greentext: true, + emoji: [], + html + } + }) + + expect(wrapper.html()).to.eql(compwrap(expected)) + }) })