MediaWiki:Gadget-EmojiPicker.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* MediaWiki:Gadget-EmojiPicker.js (ES5) */
mw.loader.using([]).done(function () {
var $box = $('#wpTextbox1');
if (!$box.length) return;
var EmojiButton = window.EmojiButton;
if (!EmojiButton) { mw.log.error('EmojiButton global missing (enable EmojiLib or include the UMD build)'); return; }
var $trigger = $('<button type="button" id="emoji-trigger" class="mw-ui-button">😀 Emoji</button>');
var $tools = $('#wikiEditor-ui-toolbar, .editOptions').first();
if ($tools.length) {
$tools.prepend($trigger);
} else {
$box.before($('<div class="emoji-trigger-wrap">').append($trigger));
}
var picker = new EmojiButton({ showSearch: true, showRecents: true, autoHide: true, emojisPerRow: 8 });
picker.on('emoji', function (sel) {
var ta = $box.get(0);
var s = ta.selectionStart;
var e = ta.selectionEnd;
var val = ta.value;
ta.value = val.slice(0, s) + sel.emoji + val.slice(e);
var pos = s + sel.emoji.length;
ta.focus();
ta.setSelectionRange(pos, pos);
});
$('#emoji-trigger').on('click', function () { picker.togglePicker(this); });
});