From 9ad3d7a8c9dd1f08a92eb71ca6dfebc1c735aaee Mon Sep 17 00:00:00 2001 From: ubermanu <e.vodor@gmail.com> Date: Tue, 16 Mar 2021 06:04:56 +0100 Subject: [PATCH 1/3] minor: replace the current emoji picker with a faster and more complete one --- src/plugins/sib-emoji-picker.js | 71 +++++++++++++++++++++++++++++++++ src/solid-xmpp-chat.js | 4 +- 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/plugins/sib-emoji-picker.js diff --git a/src/plugins/sib-emoji-picker.js b/src/plugins/sib-emoji-picker.js new file mode 100644 index 0000000..6099368 --- /dev/null +++ b/src/plugins/sib-emoji-picker.js @@ -0,0 +1,71 @@ +import 'https://cdn.skypack.dev/emoji-picker-element'; + +/** + * Custom emoji picker. + * Replaces the default drawer with a custom component. + */ +converse.plugins.add('sib-emoji-picker', { + dependencies: [ + 'converse-emoji', + ], + initialize() { + const { html } = converse.env; + const _converse = this._converse; + const { api, __ } = _converse; + + /** + * Force rendering of the emoji picker inside the dropdown. + * Note: Without this mixin, the IndexedDB can't be loaded for some reason. + */ + const EmojiDropdownMixin = { + render() { + return html` + <div class='dropup'> + <button class='toggle-emojis' + title='${__('Insert emojis')}' + data-toggle='dropdown' + aria-haspopup='true' + aria-expanded='false'> + <converse-icon + class='fa fa-smile ' + path-prefix='${api.settings.get('assets_path')}' + size='1em'></converse-icon> + </button> + <div class='dropdown-menu'> + <converse-emoji-picker + .chatview='${this.chatview}' + .model='${this.model}' + ></converse-emoji-picker> + </div> + </div>`; + }, + }; + + // Apply mixin + const EmojiDropdown = api.elements.registry['converse-emoji-dropdown']; + Object.assign(EmojiDropdown.prototype, EmojiDropdownMixin); + + /** + * Update the emoji picker rendered content. + * with the new element. + */ + const EmojiPickerMixin = { + firstUpdated() { + }, + registerEvents() { + }, + render() { + return html` + <emoji-picker + .chatview='${this.chatview}' + .model='${this.model}' + @emoji-click='${ev => this.insertIntoTextArea(ev.detail.emoji.unicode)}' + ></emoji-picker>`; + }, + }; + + // Apply mixin + const EmojiPicker = api.elements.registry['converse-emoji-picker']; + Object.assign(EmojiPicker.prototype, EmojiPickerMixin); + }, +}); diff --git a/src/solid-xmpp-chat.js b/src/solid-xmpp-chat.js index 8887e7a..1827efe 100644 --- a/src/solid-xmpp-chat.js +++ b/src/solid-xmpp-chat.js @@ -2,13 +2,14 @@ import { Sib, store, StoreMixin } from 'https://cdn.skypack.dev/@startinblox/cor import { Deferred } from './utils.js'; import ComponentPath from './path.js'; -import './conversejs/converse.min.js'; +import './conversejs/converse.js'; import './conversejs/emojis.js'; import './plugins/converse-rai.js'; import './plugins/sib-chat-navigation.js'; import './plugins/sib-custom-hats.js'; import './plugins/sib-disconnected.js'; +import './plugins/sib-emoji-picker.js'; import './plugins/sib-history-improved.js'; import './plugins/sib-mention-mobile.js'; import './plugins/sib-remove-notifications.js'; @@ -227,6 +228,7 @@ export const SolidXMPPChat = { 'sib-connected', 'sib-custom-hats', 'sib-disconnected', + 'sib-emoji-picker', 'sib-history-improved', 'sib-mention-mobile', 'sib-remove-notifications', -- GitLab From 3b946562187f38432377692f04b5df179d750665 Mon Sep 17 00:00:00 2001 From: ubermanu <e.vodor@gmail.com> Date: Tue, 16 Mar 2021 06:17:19 +0100 Subject: [PATCH 2/3] restore the usage of the minified version of converse --- src/solid-xmpp-chat.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/solid-xmpp-chat.js b/src/solid-xmpp-chat.js index 1827efe..cb78f4b 100644 --- a/src/solid-xmpp-chat.js +++ b/src/solid-xmpp-chat.js @@ -2,7 +2,7 @@ import { Sib, store, StoreMixin } from 'https://cdn.skypack.dev/@startinblox/cor import { Deferred } from './utils.js'; import ComponentPath from './path.js'; -import './conversejs/converse.js'; +import './conversejs/converse.min.js'; import './conversejs/emojis.js'; import './plugins/converse-rai.js'; -- GitLab From b864250444af32d17d7108f901e533cc9a664aed Mon Sep 17 00:00:00 2001 From: ubermanu <e.vodor@gmail.com> Date: Tue, 16 Mar 2021 06:21:54 +0100 Subject: [PATCH 3/3] enable skin tone emojis --- src/plugins/sib-emoji-picker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/sib-emoji-picker.js b/src/plugins/sib-emoji-picker.js index 6099368..d8a03ff 100644 --- a/src/plugins/sib-emoji-picker.js +++ b/src/plugins/sib-emoji-picker.js @@ -59,7 +59,7 @@ converse.plugins.add('sib-emoji-picker', { <emoji-picker .chatview='${this.chatview}' .model='${this.model}' - @emoji-click='${ev => this.insertIntoTextArea(ev.detail.emoji.unicode)}' + @emoji-click='${ev => this.insertIntoTextArea(ev.detail.unicode)}' ></emoji-picker>`; }, }; -- GitLab