From 9f70bf3aecf91b3fde7f9f67a599c97ff5268bed Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sun, 19 May 2019 17:06:21 +0100 Subject: [PATCH] fix bigemoji --- src/HtmlUtils.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/HtmlUtils.js b/src/HtmlUtils.js index 0fedd6a3e3..8fae992268 100644 --- a/src/HtmlUtils.js +++ b/src/HtmlUtils.js @@ -32,7 +32,7 @@ import MatrixClientPeg from './MatrixClientPeg'; import url from 'url'; import EMOJIBASE from 'emojibase-data/en/compact.json'; -import EMOJI_REGEX from 'emojibase-regex'; +import EMOJIBASE_REGEX from 'emojibase-regex'; linkifyMatrix(linkify); @@ -50,6 +50,8 @@ const ZWJ_REGEX = new RegExp("\u200D|\u2003", "g"); // Regex pattern for whitespace characters const WHITESPACE_REGEX = new RegExp("\\s", "g"); +const BIGEMOJI_REGEX = new RegExp(`^(${EMOJIBASE_REGEX})+$`, "i"); + const COLOR_REGEX = /^#[0-9a-fA-F]{6}$/; const PERMITTED_URL_SCHEMES = ['http', 'https', 'ftp', 'mailto', 'magnet']; @@ -442,7 +444,6 @@ export function bodyToHtml(content, highlights, opts={}) { let emojiBody = false; if (!opts.disableBigEmoji && bodyHasEmoji) { - EMOJI_REGEX.lastIndex = 0; let contentBodyTrimmed = strippedBody !== undefined ? strippedBody.trim() : ''; // Ignore spaces in body text. Emojis with spaces in between should @@ -454,7 +455,7 @@ export function bodyToHtml(content, highlights, opts={}) { // presented as large. contentBodyTrimmed = contentBodyTrimmed.replace(ZWJ_REGEX, ''); - const match = EMOJI_REGEX.exec(contentBodyTrimmed); + const match = BIGEMOJI_REGEX.exec(contentBodyTrimmed); emojiBody = match && match[0] && match[0].length === contentBodyTrimmed.length && // Prevent user pills expanding for users with only emoji in // their username