diff --git a/files/assets/js/emoji_modal/inline_group_modal.js b/files/assets/js/emoji_modal/inline_group_modal.js index d6e616a70..3328abf70 100644 --- a/files/assets/js/emoji_modal/inline_group_modal.js +++ b/files/assets/js/emoji_modal/inline_group_modal.js @@ -3,43 +3,39 @@ let groupSearchDictionaryState = "inactive"; let globalGroups = []; const groupsSearchDictionary = { - dict: [], + array: [], - updateTag: function(tag, groupName) { - if (tag === undefined || groupName === undefined) + updateTag: function(groupName) { + if (groupName === undefined) return; let low = 0; - let high = this.dict.length; + let high = this.array.length; while (low < high) { let mid = (low + high) >>> 1; - if (this.dict[mid].tag < tag) + if (this.array[mid] < groupName) low = mid + 1; else high = mid; } let target = low; - if (this.dict[target] !== undefined && this.dict[target].tag === tag) - this.dict[target].emojiNames.push(groupName); - else - this.dict.splice(target, 0, new EmojisDictNode(tag, groupName)); + this.array.splice(target, 0, groupName); }, /** * We also check for substrings! (sigh) - * @param {String} tag + * @param {String} groupName * @returns {Set} */ completeSearch: function(query) { query = query.toLowerCase() const result = new Set(); - for (let i = 0; i < this.dict.length; i++) - if (this.dict[i].tag.includes(query)) - for (let j = 0; j < this.dict[i].emojiNames.length; j++) - result.add(this.dict[i].emojiNames[j]) + for (let i = 0; i < this.array.length; i++) + if (this.array[i].toLowerCase().includes(query)) + result.add(this.array[i]) return result; } @@ -57,7 +53,7 @@ function makeGroupsSearchDictionary() { for (let i = 0; i < groups.length; i++) { const group = groups[i]; - groupsSearchDictionary.updateTag(group, group); + groupsSearchDictionary.updateTag(group); globalGroups.push(group); } diff --git a/files/assets/js/emoji_modal/inline_user_modal.js b/files/assets/js/emoji_modal/inline_user_modal.js index a4d41beff..dd0514bc6 100644 --- a/files/assets/js/emoji_modal/inline_user_modal.js +++ b/files/assets/js/emoji_modal/inline_user_modal.js @@ -3,43 +3,39 @@ let userSearchDictionaryState = "inactive"; let globalUsers = []; const usersSearchDictionary = { - dict: [], + array: [], - updateTag: function(tag, userName) { - if (tag === undefined || userName === undefined) + updateTag: function(userName) { + if (userName === undefined) return; let low = 0; - let high = this.dict.length; + let high = this.array.length; while (low < high) { let mid = (low + high) >>> 1; - if (this.dict[mid].tag < tag) + if (this.array[mid] < userName) low = mid + 1; else high = mid; } let target = low; - if (this.dict[target] !== undefined && this.dict[target].tag === tag) - this.dict[target].emojiNames.push(userName); - else - this.dict.splice(target, 0, new EmojisDictNode(tag, userName)); + this.array.splice(target, 0, userName); }, /** * We also check for substrings! (sigh) - * @param {String} tag + * @param {String} userName * @returns {Set} */ completeSearch: function(query) { query = query.toLowerCase() const result = new Set(); - for (let i = 0; i < this.dict.length; i++) - if (this.dict[i].tag.toLowerCase().includes(query)) - for (let j = 0; j < this.dict[i].emojiNames.length; j++) - result.add(this.dict[i].emojiNames[j]) + for (let i = 0; i < this.array.length; i++) + if (this.array[i].toLowerCase().includes(query)) + result.add(this.array[i]) return result; } @@ -57,7 +53,7 @@ function makeUsersSearchDictionary() { for (let i = 0; i < users.length; i++) { const user = users[i]; - usersSearchDictionary.updateTag(user, user); + usersSearchDictionary.updateTag(user); globalUsers.push(user); }