-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(frontend): 絵文字ピッカーのカテゴリを多階層フォルダで分類できるように #12132
Changes from 42 commits
7c9330a
40de144
1ba49b6
02c8fd9
647ce17
5bd68aa
b23a9b1
ae517a9
1e67e9c
59768bd
a52bbc7
f54a954
a096f62
8b1362a
75b28d6
d429f81
272e0c8
c5d2dba
94690c8
9ad5732
de6348e
407a965
32c7411
7093662
e64a81a
4e24aff
a8d45d4
f32915b
e57b536
7adc8fc
0e6cd57
f964ef1
7e7138c
3043b52
e1b45bd
808602c
e88c0ed
01af8c2
bf3ca78
0b59236
0637591
9b14644
059c11f
6b3171f
563bd78
0ae2d13
2e05560
d0f9626
d09481d
3f42764
45e39bd
84ed25a
b47b620
b19602d
74cefab
47309b6
ac8be5c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -5,9 +5,10 @@ SPDX-License-Identifier: AGPL-3.0-only | |||||
|
||||||
<template> | ||||||
<!-- このコンポーネントの要素のclassは親から利用されるのでむやみに弄らないこと --> | ||||||
<section> | ||||||
<!-- フォルダの中にはカスタム絵文字だけ(Unicode絵文字もこっち) --> | ||||||
<section v-if="!isChildrenExits"> | ||||||
<header class="_acrylic" @click="shown = !shown"> | ||||||
<i class="toggle ti-fw" :class="shown ? 'ti ti-chevron-down' : 'ti ti-chevron-up'"></i> <slot></slot> ({{ emojis.length }}) | ||||||
<i class="toggle ti-fw" :class="shown ? 'ti ti-chevron-down' : 'ti ti-chevron-up'"></i> <slot></slot> (<i class="ti ti-icons ti-fw"></i>:{{emojis.length}}) | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ti-icons は必要かしら? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 数字だけだとフォルダの数なのか、絵文字の数なのか初見だとわかんなくなりそうだなってことで追加してます。 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. あ、ti-icons というクラスは必要?という意味 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 使いたいアイコンが There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ですです、アイコンとして使いたいのが There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
</header> | ||||||
<div v-if="shown" class="body"> | ||||||
<button | ||||||
|
@@ -23,15 +24,52 @@ SPDX-License-Identifier: AGPL-3.0-only | |||||
</button> | ||||||
</div> | ||||||
</section> | ||||||
<!-- フォルダの中にはカスタム絵文字やフォルダがある --> | ||||||
<section v-else> | ||||||
<header class="_acrylic" @click="shown = !shown"> | ||||||
<i class="toggle ti-fw" :class="shown ? 'ti ti-chevron-down' : 'ti ti-chevron-up'"></i> <slot></slot> (<i class="ti ti-folder ti-fw"></i>:{{customEmojiTree.length}} <i class="ti ti-icons ti-fw"></i>:{{emojis.length}}) | ||||||
</header> | ||||||
<div v-if="shown" class="body"> | ||||||
<button | ||||||
v-for="emoji in emojis" | ||||||
:key="emoji" | ||||||
:data-emoji="emoji" | ||||||
class="_button item" | ||||||
@pointerenter="computeButtonTitle" | ||||||
@click="emit('chosen', emoji, $event)" | ||||||
> | ||||||
<MkCustomEmoji v-if="emoji[0] === ':'" class="emoji" :name="emoji" :normal="true"/> | ||||||
<MkEmoji v-else class="emoji" :emoji="emoji" :normal="true"/> | ||||||
</button> | ||||||
</div> | ||||||
<div v-if="shown" style="padding-left: 9px;"> | ||||||
<MkEmojiPickerSection | ||||||
v-for="child in customEmojiTree" | ||||||
:key="`custom:${child.value}`" | ||||||
:initialShown="initialShown" | ||||||
:emojis="computed(() => customEmojis.filter(e => e.category === child.category).map(e => `:${e.name}:`))" | ||||||
:isChildrenExits="child.children.length!==0" | ||||||
:customEmojiTree="child.children" | ||||||
@chosen="nestedChosen" | ||||||
> | ||||||
{{ child.value }} | ||||||
</MkEmojiPickerSection> | ||||||
</div> | ||||||
</section> | ||||||
</template> | ||||||
|
||||||
<script lang="ts" setup> | ||||||
import { ref, computed, Ref } from 'vue'; | ||||||
import { getEmojiName } from '@/scripts/emojilist.js'; | ||||||
import { CustomEmojiFolderTree, getEmojiName } from '@/scripts/emojilist.js'; | ||||||
import { i18n } from "../i18n.js"; | ||||||
import { customEmojis } from "@/custom-emojis.js"; | ||||||
import MkEmojiPickerSection from "@/components/MkEmojiPicker.section.vue"; | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. シングルクォートで統一お願いします |
||||||
|
||||||
const props = defineProps<{ | ||||||
emojis: string[] | Ref<string[]>; | ||||||
initialShown?: boolean; | ||||||
isChildrenExits?: boolean; | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 確かにこの変数名は命名がクソな気がするので |
||||||
customEmojiTree?: CustomEmojiFolderTree[]; | ||||||
}>(); | ||||||
|
||||||
const emit = defineEmits<{ | ||||||
|
@@ -49,4 +87,7 @@ function computeButtonTitle(ev: MouseEvent): void { | |||||
elm.title = getEmojiName(emoji) ?? emoji; | ||||||
} | ||||||
|
||||||
function nestedChosen(emoji: any, ev?: MouseEvent) { | ||||||
emit('chosen', emoji, ev); | ||||||
} | ||||||
</script> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これを変更するならen-usなど他もですね
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
en-USはGithubに直接流し込んでしまうとCrowdinから参照できないので変更なしでOKです
d.tsは変えておいてください
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
en-USの変更はRevertしちゃった方がよさそうな感じですかね。しちゃいます。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
変更して気が付いたけど、「フォルダー」という文字を変更箇所のどこでも使わなくなっていたのでそもそもjaにもd.tsにもいらない変更かもしれない
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
いらないと思ったらなぜか以下で実は必要だったというのを見つけてしまったのでja-JPの変更とd.tsの変更は指摘通り直して残しておきます。
misskey/packages/frontend/src/widgets/WidgetSlideshow.vue
Lines 7 to 16 in 1d9b5ae