From 343ae413aeaec4d6d169874cd63faf7866d7df7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=BE=E3=81=A3=E3=81=A1=E3=82=83=E3=81=A8=E3=83=BC?= =?UTF-8?q?=E3=81=AB=E3=82=85?= <17376330+u1-liquid@users.noreply.github.com> Date: Mon, 30 Oct 2023 08:50:21 +0900 Subject: [PATCH] =?UTF-8?q?=E7=B5=B5=E6=96=87=E5=AD=97=E3=83=94=E3=83=83?= =?UTF-8?q?=E3=82=AB=E3=83=BC=E3=81=AE=E3=82=AB=E3=83=86=E3=82=B4=E3=83=AA?= =?UTF-8?q?=E3=81=AE=E9=9A=8E=E5=B1=A4=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=83=BB=E3=82=B5=E3=83=96?= =?UTF-8?q?=E3=82=AB=E3=83=86=E3=82=B4=E3=83=AA=E3=82=92=E7=B5=B5=E6=96=87?= =?UTF-8?q?=E5=AD=97=E3=82=88=E3=82=8A=E4=B8=8A=E3=81=AB=20(MisskeyIO#202)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/MkEmojiPicker.section.vue | 26 +++++++++---------- .../frontend/src/components/MkEmojiPicker.vue | 12 ++++++--- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/packages/frontend/src/components/MkEmojiPicker.section.vue b/packages/frontend/src/components/MkEmojiPicker.section.vue index fda847bef9..6f99fa9200 100644 --- a/packages/frontend/src/components/MkEmojiPicker.section.vue +++ b/packages/frontend/src/components/MkEmojiPicker.section.vue @@ -29,6 +29,19 @@ SPDX-License-Identifier: AGPL-3.0-only
(:{{ customEmojiTree.length }} :{{ emojis.length }})
+
+ + {{ child.value || i18n.ts.other }} + +
-
- - {{ child.value || i18n.ts.other }} - -
diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue index 9d96ed3de6..9ebd352170 100644 --- a/packages/frontend/src/components/MkEmojiPicker.vue +++ b/packages/frontend/src/components/MkEmojiPicker.vue @@ -156,13 +156,19 @@ 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('/').map(p => p.trim()); + const parts = (input && input !== 'null' ? input : '').split('/'); let currentNode: CustomEmojiFolderTree = root; for (const part of parts) { - let existingNode = currentNode.children.find((node) => node.value === part); + const path = currentNode.value ? `${currentNode.value}/${part.trim()}` : part.trim(); + + let existingNode = currentNode.children.find((node) => node.value === path); if (!existingNode) { - const newNode: CustomEmojiFolderTree = { value: part, category: input, children: [] }; + const newNode: CustomEmojiFolderTree = { + value: path, + category: currentNode.category ? `${currentNode.category}/${part}` : part, + children: [], + }; currentNode.children.push(newNode); existingNode = newNode; }