client: Sort emojis by query similarity in fuzzy picker #156
1 changed files with 3 additions and 1 deletions
|
@ -151,7 +151,9 @@ function emojiSearch<Type extends foundkey.entities.CustomEmoji|UnicodeEmojiDef>
|
|||
const distance = (str: string): number => rodistance(joinq, str);
|
||||
const mindistance = (strs: string[]): number => Math.min(...strs.map(distance));
|
||||
const distinguisher = (emoji: Type): string => 'char' in emoji ? emoji.char : emoji.id;
|
||||
matches.forEach(emoji => distances[distinguisher(emoji)] = Math.min(distance(emoji.name), mindistance(aliases(emoji))));
|
||||
for (const emoji of matches) {
|
||||
distances[distinguisher(emoji)] = Math.min(distance(emoji.name), mindistance(aliases(emoji)));
|
||||
}
|
||||
|
||||
// sort by distance from query
|
||||
matches.sort((a, b) => distances[distinguisher(a)] - distances[distinguisher(b)]);
|
||||
|
|
Loading…
Reference in a new issue