summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkAutocomplete.vue
diff options
context:
space:
mode:
author1Step621 <86859447+1STEP621@users.noreply.github.com>2024-01-10 15:06:04 +0900
committerGitHub <noreply@github.com>2024-01-10 15:06:04 +0900
commitc1c363bf08a391400e4b8b1df91962c26f2f3192 (patch)
tree381cbf6dcbed1725b8216b6e1df8cbaed5ab622c /packages/frontend/src/components/MkAutocomplete.vue
parentenhance(drop-and-fusion): some tweaks (diff)
downloadmisskey-c1c363bf08a391400e4b8b1df91962c26f2f3192.tar.gz
misskey-c1c363bf08a391400e4b8b1df91962c26f2f3192.tar.bz2
misskey-c1c363bf08a391400e4b8b1df91962c26f2f3192.zip
Enhance(frontend): 絵文字ピッカー/オートコンプリートで完全一致の絵文字を優先するように (#12928)
* 絵文字ピッカー/オートコンプリートで完全一致の絵文字を優先するように * update CHANGELOG.md * improve performance
Diffstat (limited to 'packages/frontend/src/components/MkAutocomplete.vue')
-rw-r--r--packages/frontend/src/components/MkAutocomplete.vue17
1 files changed, 13 insertions, 4 deletions
diff --git a/packages/frontend/src/components/MkAutocomplete.vue b/packages/frontend/src/components/MkAutocomplete.vue
index 49884c705f..15eda4499f 100644
--- a/packages/frontend/src/components/MkAutocomplete.vue
+++ b/packages/frontend/src/components/MkAutocomplete.vue
@@ -262,15 +262,24 @@ function emojiAutoComplete(query: string | null, emojiDb: EmojiDef[], max = 30):
}
const matched = new Map<string, EmojiScore>();
-
- // 前方一致(エイリアスなし)
+ // 完全一致(エイリアス込み)
emojiDb.some(x => {
- if (x.name.startsWith(query) && !x.aliasOf) {
- matched.set(x.name, { emoji: x, score: query.length + 1 });
+ if (x.name === query && !matched.has(x.aliasOf ?? x.name)) {
+ matched.set(x.aliasOf ?? x.name, { emoji: x, score: query.length + 2 });
}
return matched.size === max;
});
+ // 前方一致(エイリアスなし)
+ if (matched.size < max) {
+ emojiDb.some(x => {
+ if (x.name.startsWith(query) && !x.aliasOf) {
+ matched.set(x.name, { emoji: x, score: query.length + 1 });
+ }
+ return matched.size === max;
+ });
+ }
+
// 前方一致(エイリアス込み)
if (matched.size < max) {
emojiDb.some(x => {