diff --git a/Resources/Plugins/emoji-keyboard/browser.js b/Resources/Plugins/emoji-keyboard/browser.js index 89108ed0..b3a0997d 100644 --- a/Resources/Plugins/emoji-keyboard/browser.js +++ b/Resources/Plugins/emoji-keyboard/browser.js @@ -1,15 +1,27 @@ enabled(){ this.emojiHTML = ""; - // styles and layout + var me = this; + + // styles this.css = window.TDPF_createCustomStyle(this); this.css.insert(".emoji-keyboard { position: absolute; width: 15.35em; height: 11.2em; background-color: white; overflow-y: auto; padding: 0.1em; box-sizing: border-box; border-radius: 2px; font-size: 24px; z-index: 9999 }"); this.css.insert(".emoji-keyboard .separator { height: 26px; }"); this.css.insert(".emoji-keyboard .emoji { padding: 0.1em !important; cursor: pointer }"); + // layout + + var buttonHTML = '<button class="needsclick btn btn-on-blue txt-left padding-v--9 emoji-keyboard-popup-btn"><i class="icon icon-heart"></i></button>'; + this.prevComposeMustache = TD.mustaches["compose/docked_compose.mustache"]; - TD.mustaches["compose/docked_compose.mustache"] = TD.mustaches["compose/docked_compose.mustache"].replace('<div class="cf margin-t--12 margin-b--30">', '<div class="cf margin-t--12 margin-b--30"><button class="needsclick btn btn-on-blue txt-left margin-b--12 padding-v--9 emoji-keyboard-popup-btn"><i class="icon icon-heart"></i></button>'); + TD.mustaches["compose/docked_compose.mustache"] = TD.mustaches["compose/docked_compose.mustache"].replace('<div class="cf margin-t--12 margin-b--30">', '<div class="cf margin-t--12 margin-b--30">'+buttonHTML); + + var dockedComposePanel = $(".js-docked-compose"); + + if (dockedComposePanel.length){ + dockedComposePanel.find(".cf.margin-t--12.margin-b--30").first().append(buttonHTML); + } // keyboard generation @@ -44,9 +56,18 @@ enabled(){ return created; }; - // event handlers + this.prevTryPasteImage = window.TDGF_tryPasteImage; + var prevTryPasteImageF = this.prevTryPasteImage; - var me = this; + window.TDGF_tryPasteImage = function(){ + if (me.currentKeyboard){ + hideKeyboard(); + } + + return prevTryPasteImageF.apply(this, arguments); + }; + + // event handlers this.emojiKeyboardButtonClickEvent = function(e){ if (me.currentKeyboard){ @@ -124,9 +145,7 @@ ready(){ let declPre = decl.slice(0, skinIndex); let declPost = decl.slice(skinIndex+1); - for(let newDecl of skinTones.map(skinTone => declPre+skinTone+declPost)){ - addDeclaration(newDecl); - } + skinTones.map(skinTone => declPre+skinTone+declPost).forEach(addDeclaration); } else{ addDeclaration(decl); @@ -144,7 +163,15 @@ ready(){ disabled(){ this.css.remove(); + if (this.currentKeyboard){ + $(this.currentKeyboard).remove(); + } + + window.TDGF_tryPasteImage = this.prevTryPasteImage; + $(".emoji-keyboard-popup-btn").off("click", this.emojiKeyboardButtonClickEvent); + $(".emoji-keyboard-popup-btn").remove(); + $(document).off("click", this.documentClickEvent); $(document).off("keydown", this.documentKeyEvent); TD.mustaches["compose/docked_compose.mustache"] = this.prevComposeMustache;