diff --git a/src/main.js b/src/main.js index 35f5f591..8533de44 100644 --- a/src/main.js +++ b/src/main.js @@ -149,7 +149,7 @@ ${typeof x[1] === 'string' ? x[1] : JSON.stringify(x[1], null, 4)}` FrankerFaceZ.Logger = Logger; const VER = FrankerFaceZ.version_info = { - major: 4, minor: 0, revision: 0, extra: '-rc13.14', + major: 4, minor: 0, revision: 0, extra: '-rc13.15', commit: __git_commit__, build: __webpack_hash__, toString: () => diff --git a/src/modules/chat/tokenizers.jsx b/src/modules/chat/tokenizers.jsx index d00adae0..d515bd25 100644 --- a/src/modules/chat/tokenizers.jsx +++ b/src/modules/chat/tokenizers.jsx @@ -10,7 +10,7 @@ import {has, split_chars} from 'utilities/object'; import {TWITCH_EMOTE_BASE, REPLACEMENT_BASE, REPLACEMENTS} from 'utilities/constants'; -const EMOTE_CLASS = 'chat-line__message--emote', +const EMOTE_CLASS = 'chat-image chat-line__message--emote', LINK_REGEX = /([^\w@#%\-+=:~])?((?:(https?:\/\/)?(?:[\w@#%\-+=:~]+\.)+[a-z]{2,6}(?:\/[\w./@#%&()\-+=:?~]*)?))([^\w./@#%&()\-+=:?~]|\s|$)/g, MENTION_REGEX = /([^\w@#%\-+=:~])?(@([^\u0000-\u007F]+|\w+)+)([^\w./@#%&()\-+=:?~]|\s|$)/g; // eslint-disable-line no-control-regex @@ -595,7 +595,7 @@ export const CheerEmotes = { // Addon Emotes // ============================================================================ -const render_emote = (token, createElement) => { +const render_emote = (token, createElement, wrapped) => { const mods = token.modifiers || [], ml = mods.length, emote = createElement('img', { class: `${EMOTE_CLASS} ffz-tooltip${token.provider === 'ffz' ? ' ffz-emote' : token.provider === 'emoji' ? ' ffz-emoji' : ''}`, @@ -614,17 +614,26 @@ const render_emote = (token, createElement) => { } }); - if ( ! ml ) - return emote; + if ( ! ml ) { + if ( wrapped ) + return emote; + + return createElement('span', { + attrs: { + 'data-a-target': 'emote-name' + } + }, [emote]); + } return createElement('span', { class: `${EMOTE_CLASS} modified-emote`, attrs: { + 'data-a-target': 'emote-name', 'data-provider': token.provider, 'data-id': token.id, 'data-set': token.set } - }, [emote, mods.map(x => createElement('span', {key: x.text}, render_emote(x, createElement)))]) + }, [emote, mods.map(x => createElement('span', {key: x.text}, render_emote(x, createElement, true)))]) } @@ -639,7 +648,7 @@ export const AddonEmotes = { } }, - render(token, createElement) { + render(token, createElement, wrapped) { const mods = token.modifiers || [], ml = mods.length, emote = (); - if ( ! ml ) - return emote; + if ( ! ml ) { + if ( wrapped ) + return emote; + + return ({emote}); + } return ( event.ctrlKey ? this.usernameClickHandler(event) : t.viewer_cards.openCard(r, user, event); + this.ffz_user_click_handler = this.openViewerCard || this.usernameClickHandler; //event => event.ctrlKey ? this.usernameClickHandler(event) : t.viewer_cards.openCard(r, user, event); let cls = `chat-line__message${show_class ? ' ffz--deleted-message' : ''}`, out = (tokens.length || ! msg.ffz_type) ? [