YS

Results 4 issues of YS

# What + 絵文字ピッカーの検索結果以外でもマウスホバーによる絵文字名表示がされるように + 絵文字ピッカー上のアイコンボタンをコンポーネント化 # Why #9750 # Additional info (optional)

🖥️Client

## Summary 絵文字ピッカーで 最近使用 とその下のセクションの絵文字にマウスホバーで絵文字テキストが出るようにしたい。 (私は) リアクションする前に念のため文字を確認しておきたいことがある。 ## Plan buttonの中にあるとpointeroverが発火しないことはそのままにしてMkEmoji.vueとMkCustomEmoji.vueには手を入れない。 MkEmojiPickerIconButton.vue として切り出して button タグにタイトルを設定する ``` // stringではないまたは1文字目が":"の場合にカスタム絵文字 // unicode絵文字は emoji.char で渡す ``` related #9749

✨Feature

## What + frontend/src/scripts/emojilist.ts のgetEmojiName で線形探索の代わりに、UniocdeEmojiDef::char 属性をキーにして配列インデックスを値に持つ辞書を使う + emojilist.tsでカテゴリをキーに char のリストを持つ辞書を作る ## Why + getEmojiName呼び出しでemojilist全体を探索しているため + MkEmojiPicker.vueでカテゴリ毎にemojilistを探してセクション分けするときにカテゴリの数だけemojilist全体を探索しているため + ( Issue作成予定 ) 絵文字ピッカーで検索結果以外でもマウスホバー時に絵文字名が出るようにしたく、そのためにgetEmojiNameの負荷を下げるため

https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/core/entities/NoteEntityService.ts#L392 から Noteをレスポンス用に整形するために https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/core/entities/NoteEntityService.ts#L307 で drive_fileへのクエリが画像数分走る noteテーブルに添付ファイル情報を複数カラムの配列で持っているのは扱いにくいのでdrive_fileへの中間テーブルを作ってJOINしたい。 ``` "fileIds" _varchar NOT NULL DEFAULT '{}'::character varying[], "attachedFileTypes" _varchar NOT NULL DEFAULT '{}'::character varying[], ``` 手っ取り早いのは絵文字でやっている `await this.customEmojiService.prefetchEmojis(this.customEmojiService.aggregateNoteEmojis(notes));` のような処理追加ですが、配列型保持にしている理由が無ければ思い切ってテーブルを正規化した方がいい気がします。 問題なければAssigneeにしてほしいです

🐢Performance
⚙️Server
💚Refactor