Custom channel emoticons WIP (#130):

* fix reset when opening multiple chat
* disable default converseJs custom icons
This commit is contained in:
John Livingston 2024-06-07 12:25:04 +02:00
parent 47b580d132
commit f1cf98921f
No known key found for this signature in database
GPG Key ID: B17B5640CE66CDBC
3 changed files with 18 additions and 39 deletions

View File

@ -114,28 +114,20 @@ function defaultConverseParams (
params.clear_cache_on_logout = true
params.allow_user_trust_override = false
// We must enable custom emoji category, that ConverseJS disables by default.
// We put it last by default, but first if there are any custom emojis for this chat.
params.emoji_categories = Object.assign(
{},
customEmojisUrl
? { custom: ':converse:' }
: {},
{
smileys: ':grinning:',
people: ':thumbsup:',
activity: ':soccer:',
travel: ':motorcycle:',
objects: ':bomb:',
nature: ':rainbow:',
food: ':hotdog:',
symbols: ':musical_note:',
flags: ':flag_ac:'
},
!customEmojisUrl
? { custom: ':converse:' }
: {}
)
// We change emoji_categories to put custom first.
// We set custom to null, it will be set to another value if custom emojis are enabled.
params.emoji_categories = {
custom: null,
smileys: ':grinning:',
people: ':thumbsup:',
activity: ':soccer:',
travel: ':motorcycle:',
objects: ':bomb:',
nature: ':rainbow:',
food: ':hotdog:',
symbols: ':musical_note:',
flags: ':flag_ac:'
}
return params
}

View File

@ -33,8 +33,6 @@ export const livechatEmojisPlugin = {
return json
}
// We will put default emojis at the end, so keeping a copy
const defaultCustom = json.custom ?? {}
// Now we must clone json, to avoid side effects when navigating between several videos.
json = JSON.parse(JSON.stringify(json))
json.custom = {}
@ -61,18 +59,14 @@ export const livechatEmojisPlugin = {
}
}
for (const key in defaultCustom) {
if (key in json.custom) {
// Was overriden by the backend, skipping.
continue
}
json.custom[key] = defaultCustom[key]
}
// And if there was a default definition, using it for the custom cat icon.
// Else we fallback to the first.
// If none... just keep custom to null!
defaultDef ??= customs[0]
if (defaultDef) {
const cat = _converse.api.settings.get('emoji_categories')
cat.custom = defaultDef.sn
_converse.api.settings.set('emoji_categories', cat)
}
return json
})

View File

@ -311,13 +311,6 @@ export class Emojis {
customEmojis.push(sanitized)
}
// For now, the frontend does not implement isCategoryEmoji.
// if there is no isCategoryEmoji, we will take the first value.
// TODO: remove this when the frontend will be able to set this.
if (!categoryEmojiFound && customEmojis.length) {
customEmojis[0].isCategoryEmoji = true
}
const result: ChannelEmojis = {
customEmojis: customEmojis
}