Skip to content

Commit 85fdcf3

Browse files
authored
Merge pull request Expensify#67030 from dmkt9/fix/66602
2 parents 6ae180f + aa7b80b commit 85fdcf3

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

src/components/RenderHTML.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import React from 'react';
1+
import React, {useMemo} from 'react';
22
import {RenderHTMLSource} from 'react-native-render-html';
33
import useWindowDimensions from '@hooks/useWindowDimensions';
4+
import Parser from '@libs/Parser';
45

56
type RenderHTMLProps = {
67
/** HTML string to render */
@@ -11,8 +12,13 @@ type RenderHTMLProps = {
1112
// Configuration for RenderHTML is handled in a top-level component providing
1213
// context to RenderHTMLSource components. See https://git.io/JRcZb
1314
// The provider is available at src/components/HTMLEngineProvider/
14-
function RenderHTML({html}: RenderHTMLProps) {
15+
function RenderHTML({html: htmlParam}: RenderHTMLProps) {
1516
const {windowWidth} = useWindowDimensions();
17+
const html = useMemo(() => {
18+
// Sanitize emoji characters already wrapped in <emoji> tags to prevent double-tagging.
19+
const sanitizedHtml = htmlParam.replaceAll(/<\/?emoji>/g, '');
20+
return Parser.replace(sanitizedHtml, {shouldEscapeText: false, filterRules: ['emoji']});
21+
}, [htmlParam]);
1622
return (
1723
<RenderHTMLSource
1824
contentWidth={windowWidth * 0.8}

0 commit comments

Comments
 (0)