summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/behaviors/gl_emoji.js
diff options
context:
space:
mode:
authorTim Zallmann <tzallmann@gitlab.com>2019-03-14 10:18:18 +0100
committerStan Hu <stanhu@gmail.com>2019-04-10 11:49:06 -0700
commitc57529556c2ba3053e3a622efc2f5b6eeaabe009 (patch)
tree1cb928c3fa9c214f083e2f8b1ccc292ebda438db /app/assets/javascripts/behaviors/gl_emoji.js
parentddab30ad3561c6834fd779458ce89084c8a95ca5 (diff)
downloadgitlab-ce-c57529556c2ba3053e3a622efc2f5b6eeaabe009.tar.gz
Revert "Merge branch 'tz-reorganise-digests-json' into 'master'"tz-revert-new-emojis-loading
Reverts the loading of emojis and its images to move forward with RC
Diffstat (limited to 'app/assets/javascripts/behaviors/gl_emoji.js')
-rw-r--r--app/assets/javascripts/behaviors/gl_emoji.js97
1 files changed, 35 insertions, 62 deletions
diff --git a/app/assets/javascripts/behaviors/gl_emoji.js b/app/assets/javascripts/behaviors/gl_emoji.js
index 9034563d9b3..d1d75658181 100644
--- a/app/assets/javascripts/behaviors/gl_emoji.js
+++ b/app/assets/javascripts/behaviors/gl_emoji.js
@@ -1,74 +1,47 @@
import 'document-register-element';
import isEmojiUnicodeSupported from '../emoji/support';
-import { initEmojiMap, getEmojiInfo, emojiFallbackImageSrc, emojiImageTag } from '../emoji';
class GlEmoji extends HTMLElement {
constructor() {
super();
- let emojiUnicode = this.textContent.trim();
- const { fallbackSpriteClass, fallbackSrc, forceFallback } = this.dataset;
- let { name, unicodeVersion } = this.dataset;
-
- initEmojiMap()
- .then(() => {
- if (!unicodeVersion) {
- const emojiInfo = getEmojiInfo(name);
-
- if (emojiInfo) {
- if (name !== emojiInfo.name) {
- ({ name } = emojiInfo);
- this.dataset.name = emojiInfo.name;
- }
- unicodeVersion = emojiInfo.u;
- this.dataset.uni = unicodeVersion;
-
- if (forceFallback === 'true' && !fallbackSpriteClass) {
- this.innerHTML = emojiImageTag(name, emojiFallbackImageSrc(name));
- } else {
- emojiUnicode = emojiInfo.e;
- this.innerHTML = emojiInfo.e;
- }
-
- this.title = emojiInfo.d;
- }
+ const emojiUnicode = this.textContent.trim();
+ const { name, unicodeVersion, fallbackSrc, fallbackSpriteClass } = this.dataset;
+
+ const isEmojiUnicode =
+ this.childNodes &&
+ Array.prototype.every.call(this.childNodes, childNode => childNode.nodeType === 3);
+ const hasImageFallback = fallbackSrc && fallbackSrc.length > 0;
+ const hasCssSpriteFalback = fallbackSpriteClass && fallbackSpriteClass.length > 0;
+
+ if (emojiUnicode && isEmojiUnicode && !isEmojiUnicodeSupported(emojiUnicode, unicodeVersion)) {
+ // CSS sprite fallback takes precedence over image fallback
+ if (hasCssSpriteFalback) {
+ 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;
}
-
- const isEmojiUnicode =
- this.childNodes &&
- Array.prototype.every.call(this.childNodes, childNode => childNode.nodeType === 3);
- const hasImageFallback = fallbackSrc && fallbackSrc.length > 0;
- const hasCssSpriteFalback = fallbackSpriteClass && fallbackSpriteClass.length > 0;
-
- if (
- emojiUnicode &&
- isEmojiUnicode &&
- !isEmojiUnicodeSupported(emojiUnicode, unicodeVersion)
- ) {
- // CSS sprite fallback takes precedence over image fallback
- if (hasCssSpriteFalback) {
- 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 {
+ import(/* webpackChunkName: 'emoji' */ '../emoji')
+ .then(({ emojiImageTag, emojiFallbackImageSrc }) => {
+ if (hasImageFallback) {
+ this.innerHTML = emojiImageTag(name, fallbackSrc);
+ } else {
+ const src = emojiFallbackImageSrc(name);
+ this.innerHTML = emojiImageTag(name, src);
}
- // IE 11 doesn't like adding multiple at once :(
- this.classList.add('emoji-icon');
- this.classList.add(fallbackSpriteClass);
- } else if (hasImageFallback) {
- this.innerHTML = emojiImageTag(name, fallbackSrc);
- } else {
- const src = emojiFallbackImageSrc(name);
- this.innerHTML = emojiImageTag(name, src);
- }
- }
- })
- .catch(error => {
- // Only reject is already handled in initEmojiMap
- throw error;
- });
+ })
+ .catch(() => {
+ // do nothing
+ });
+ }
+ }
}
}