summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/behaviors/gl_emoji.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/behaviors/gl_emoji.js')
-rw-r--r--app/assets/javascripts/behaviors/gl_emoji.js59
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));
}
});
}