logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://hacktivis.me/git/pleroma-fe.git
commit: c6831a381033fa160fba95fa88b1179d3c670d9d
parent 8fe4355a6b84ae81b54228e6749a4ab82966ff2e
Author: Henry Jameson <me@hjkos.com>
Date:   Fri, 18 Jun 2021 21:42:46 +0300

fix not escaping some stuff

Diffstat:

Msrc/components/rich_content/rich_content.jsx13+++++--------
Mtest/unit/specs/components/rich_content.spec.js23+++++++++++++++++++++++
2 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx @@ -121,14 +121,13 @@ export default Vue.component('RichContent', { if (emptyText) { return encounteredText ? item : item.trim() } - let unescapedItem = unescape(item) if (!encounteredText) { - unescapedItem = unescapedItem.trimStart() + item = item.trimStart() encounteredText = true } if (item.includes(':')) { - unescapedItem = ['', processTextForEmoji( - unescapedItem, + item = ['', processTextForEmoji( + item, this.emoji, ({ shortcode, url }) => { return <StillImage @@ -140,7 +139,7 @@ export default Vue.component('RichContent', { } )] } - return unescapedItem + return item } // Handle tag nodes @@ -189,7 +188,7 @@ export default Vue.component('RichContent', { const emptyText = item.trim() === '' if (emptyText) return item if (!encounteredTextReverse) encounteredTextReverse = true - return item + return unescape(item) } else if (Array.isArray(item)) { // Handle tag nodes const [opener, children] = item @@ -203,9 +202,7 @@ export default Vue.component('RichContent', { 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 <a {...{ attrs }}> { newChildren } diff --git a/test/unit/specs/components/rich_content.spec.js b/test/unit/specs/components/rich_content.spec.js @@ -27,6 +27,29 @@ describe('RichContent', () => { expect(wrapper.html()).to.eql(compwrap(html)) }) + it('unescapes everything as needed', () => { + const html = [ + p('Testing &#39;em all'), + 'Testing &#39;em all' + ].join('') + const expected = [ + p('Testing \'em all'), + 'Testing \'em all' + ].join('') + const wrapper = shallowMount(RichContent, { + localVue, + propsData: { + hideMentions: true, + handleLinks: true, + greentext: true, + emoji: [], + html + } + }) + + expect(wrapper.html()).to.eql(compwrap(expected)) + }) + it('removes mentions from the beginning of post', () => { const html = p( makeMention('John'),