diff --git a/packages/frontend/src/components/MkEmojiPicker.section.vue b/packages/frontend/src/components/MkEmojiPicker.section.vue index c44ee3d41f..af3484d617 100644 --- a/packages/frontend/src/components/MkEmojiPicker.section.vue +++ b/packages/frontend/src/components/MkEmojiPicker.section.vue @@ -52,7 +52,7 @@ SPDX-License-Identifier: AGPL-3.0-only :customEmojiTree="child.children" @chosen="nestedChosen" > - {{ child.value }} + {{ child.value || i18n.ts.other }} diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue index af3f625690..f0414fb642 100644 --- a/packages/frontend/src/components/MkEmojiPicker.vue +++ b/packages/frontend/src/components/MkEmojiPicker.vue @@ -76,12 +76,12 @@ SPDX-License-Identifier: AGPL-3.0-only v-for="child in customEmojiFolderRoot.children" :key="`custom:${child.value}`" :initialShown="false" - :emojis="computed(() => customEmojis.filter(e => child.value === i18n.ts.other ? (e.category === 'null' || !e.category) : e.category === child.value).filter(filterAvailable).map(e => `:${e.name}:`))" + :emojis="computed(() => customEmojis.filter(e => child.value === '' ? (e.category === 'null' || !e.category) : e.category === child.value).filter(filterAvailable).map(e => `:${e.name}:`))" :categoryFolderFlag="child.children.length!==0" :customEmojiTree="child.children" @chosen="chosen" > - {{ child.value }} + {{ child.value || i18n.ts.other }}
@@ -156,23 +156,18 @@ const tab = ref<'index' | 'custom' | 'unicode' | 'tags'>('index'); const customEmojiFolderRoot: CustomEmojiFolderTree = { value: "", category: "", children: [] }; function parseAndMergeCategories(input: string, root: CustomEmojiFolderTree): CustomEmojiFolderTree { - const parts = input.split('/'); - let category = ""; - let currentNode: CustomEmojiFolderTree = root; + const parts = input.split('/'); + let currentNode: CustomEmojiFolderTree = root; for (let part of parts) { - if (part) { - category += `/${part}`; - } else { - part = i18n.ts.other - category += `/`; + if (!part) { + part = ''; } - category = category.replace(/^\//, ''); let existingNode = currentNode.children.find((node) => node.value === part); if (!existingNode) { - const newNode: CustomEmojiFolderTree = { value: part, category, children: [] }; + const newNode: CustomEmojiFolderTree = { value: part, category: input, children: [] }; currentNode.children.push(newNode); existingNode = newNode; } @@ -180,7 +175,7 @@ function parseAndMergeCategories(input: string, root: CustomEmojiFolderTree): Cu currentNode = existingNode; } - return currentNode; + return currentNode; } customEmojiCategories.value.forEach(ec => { @@ -189,7 +184,7 @@ customEmojiCategories.value.forEach(ec => { } }); -parseAndMergeCategories(i18n.ts.other, customEmojiFolderRoot); +parseAndMergeCategories('', customEmojiFolderRoot); watch(q, () => { if (emojisEl.value) emojisEl.value.scrollTop = 0;