From d0f96268499e534bbab3a8adf907e887a1a51580 Mon Sep 17 00:00:00 2001 From: meronmks Date: Sat, 28 Oct 2023 19:52:04 +0900 Subject: [PATCH] =?UTF-8?q?=E7=89=B9=E5=AE=9A=E3=81=AE=E3=83=91=E3=82=BF?= =?UTF-8?q?=E3=83=BC=E3=83=B3=E3=81=AE=E3=82=AB=E3=83=86=E3=82=B4=E3=83=AA?= =?UTF-8?q?=E5=90=8D=E3=81=A7=E3=83=94=E3=83=83=E3=82=AB=E3=83=BC=E3=81=AB?= =?UTF-8?q?=E5=87=BA=E3=81=A6=E3=81=93=E3=81=AA=E3=81=84=E3=81=AE=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 「i18n.ts.other」や「/」始まりの場合壊れる --- .../src/components/MkEmojiPicker.section.vue | 2 +- .../frontend/src/components/MkEmojiPicker.vue | 23 ++++++++----------- 2 files changed, 10 insertions(+), 15 deletions(-) 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;