From d66e404e006ab6f90ccb098717ec6533a8006c56 Mon Sep 17 00:00:00 2001 From: Aevann Date: Sun, 19 Mar 2023 16:08:53 +0200 Subject: [PATCH] show author and usage count in popup emoji modal --- files/assets/js/emoji_modal.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/files/assets/js/emoji_modal.js b/files/assets/js/emoji_modal.js index cb0f54233..8e7649692 100644 --- a/files/assets/js/emoji_modal.js +++ b/files/assets/js/emoji_modal.js @@ -148,7 +148,7 @@ emojiRequest.onload = async () => { if(! (emojis instanceof Array )) throw new TypeError("[EMOJI DIALOG] rDrama's server should have sent a JSON-coded Array!"); - globalEmojis = emojis.map(i => i.name); + globalEmojis = emojis.map(({name, author, count}) => ({name, author, count})); let classes = new Set(); const bussyDOM = document.createElement("div"); @@ -360,8 +360,10 @@ function populate_speed_emoji_modal(results, textbox) const MAXXX = 25; // Not sure why the results is a Set... but oh well let i = 0; - for (let result of results) + for (let emoji of results) { + const name = emoji.name + if (i++ > MAXXX) return i; let emoji_option = document.createElement("div"); emoji_option.className = "speed-modal-option emoji-option " + (i === 1 ? "selected" : ""); @@ -369,18 +371,26 @@ function populate_speed_emoji_modal(results, textbox) let emoji_option_img = document.createElement("img"); emoji_option_img.className = "speed-modal-image emoji-option-image"; // This is a bit - emoji_option_img.src = `/e/${result}.webp`; + emoji_option_img.src = `/e/${name}.webp`; let emoji_option_text = document.createElement("span"); - emoji_option_text.title = result; - emoji_option_text.innerText = result; - if (current_word.includes("#")) result = `#${result}` - if (current_word.includes("!")) result = `!${result}` + emoji_option_text.title = name; + + if(emoji.author !== undefined && emoji.author !== null) + emoji_option_text.title += "\nauthor\t" + emoji.author + + if(emoji.count !== undefined) + emoji_option_text.title += "\nused\t" + emoji.count; + + emoji_option_text.innerText = name; + + if (current_word.includes("#")) name = `#${name}` + if (current_word.includes("!")) name = `!${name}` emoji_option.addEventListener('click', () => { selecting = false; speed_carot_modal.style.display = "none"; - textbox.value = textbox.value.replace(new RegExp(current_word+"(?=\\s|$)", "g"), `:${result}: `) + textbox.value = textbox.value.replace(new RegExp(current_word+"(?=\\s|$)", "g"), `:${name}: `) textbox.focus() if (document.location.pathname != '/chat'){ markdown(textbox) @@ -436,7 +446,7 @@ function update_speed_emoji_modal(event) // Do the search (and do something with it) const resultSet = emojisSearchDictionary.completeSearch(current_word.substr(1).replace(/#/g, "").replace(/!/g, "")) - const found = globalEmojis.filter(value => resultSet.has(value)); + const found = globalEmojis.filter(i => resultSet.has(i.name)); populate_speed_emoji_modal(found, event.target);