diff options
Diffstat (limited to 'app/assets/javascripts/behaviors/gl_emoji.js')
-rw-r--r-- | app/assets/javascripts/behaviors/gl_emoji.js | 59 |
1 files changed, 22 insertions, 37 deletions
diff --git a/app/assets/javascripts/behaviors/gl_emoji.js b/app/assets/javascripts/behaviors/gl_emoji.js index 8fd03d3132d..29204020058 100644 --- a/app/assets/javascripts/behaviors/gl_emoji.js +++ b/app/assets/javascripts/behaviors/gl_emoji.js @@ -1,10 +1,4 @@ -import { - initEmojiMap, - getEmojiInfo, - emojiFallbackImageSrc, - emojiImageTag, - FALLBACK_EMOJI_KEY, -} from '../emoji'; +import { initEmojiMap, getEmojiInfo, emojiFallbackImageSrc, emojiImageTag } from '../emoji'; import isEmojiUnicodeSupported from '../emoji/support'; class GlEmoji extends HTMLElement { @@ -22,10 +16,6 @@ class GlEmoji extends HTMLElement { if (emojiInfo) { if (name !== emojiInfo.name) { - if (emojiInfo.name === FALLBACK_EMOJI_KEY && this.innerHTML) { - return; // When fallback emoji is used, but there is a <img> provided, use the <img> instead - } - ({ name } = emojiInfo); this.dataset.name = emojiInfo.name; } @@ -43,34 +33,29 @@ class GlEmoji extends HTMLElement { this.childNodes && Array.prototype.every.call(this.childNodes, (childNode) => childNode.nodeType === 3); - if ( - emojiUnicode && - isEmojiUnicode && - !isEmojiUnicodeSupported(emojiUnicode, unicodeVersion) - ) { - const hasImageFallback = fallbackSrc && fallbackSrc.length > 0; - const hasCssSpriteFallback = fallbackSpriteClass && fallbackSpriteClass.length > 0; + const hasImageFallback = fallbackSrc?.length > 0; + const hasCssSpriteFallback = fallbackSpriteClass?.length > 0; - // CSS sprite fallback takes precedence over image fallback - if (hasCssSpriteFallback) { - if (!gon.emoji_sprites_css_added && gon.emoji_sprites_css_path) { - const emojiSpriteLinkTag = document.createElement('link'); - emojiSpriteLinkTag.setAttribute('rel', 'stylesheet'); - emojiSpriteLinkTag.setAttribute('href', gon.emoji_sprites_css_path); - document.head.appendChild(emojiSpriteLinkTag); - gon.emoji_sprites_css_added = true; - } - // IE 11 doesn't like adding multiple at once :( - this.classList.add('emoji-icon'); - this.classList.add(fallbackSpriteClass); - } else if (hasImageFallback) { - this.innerHTML = ''; - this.appendChild(emojiImageTag(name, fallbackSrc)); - } else { - const src = emojiFallbackImageSrc(name); - this.innerHTML = ''; - this.appendChild(emojiImageTag(name, src)); + if (emojiUnicode && isEmojiUnicode && isEmojiUnicodeSupported(emojiUnicode, unicodeVersion)) { + // noop + } else if (hasCssSpriteFallback) { + if (!gon.emoji_sprites_css_added && gon.emoji_sprites_css_path) { + const emojiSpriteLinkTag = document.createElement('link'); + emojiSpriteLinkTag.setAttribute('rel', 'stylesheet'); + emojiSpriteLinkTag.setAttribute('href', gon.emoji_sprites_css_path); + document.head.appendChild(emojiSpriteLinkTag); + gon.emoji_sprites_css_added = true; } + // IE 11 doesn't like adding multiple at once :( + this.classList.add('emoji-icon'); + this.classList.add(fallbackSpriteClass); + } else if (hasImageFallback) { + this.innerHTML = ''; + this.appendChild(emojiImageTag(name, fallbackSrc)); + } else { + const src = emojiFallbackImageSrc(name); + this.innerHTML = ''; + this.appendChild(emojiImageTag(name, src)); } }); } |