const searchList = useMemo(() => {
const list: Array<EmoticonSearchItem> = [];
- return list.concat(
- imagePacks.flatMap((pack) => pack.getImagesFor(PackUsage.Emoticon)),
- emojis
- );
+ return list
+ .concat(
+ imagePacks.flatMap((pack) => pack.getImagesFor(PackUsage.Emoticon)),
+ emojis
+ )
}, [imagePacks]);
const [result, search, resetSearch] = useAsyncSearch(searchList, getEmoticonStr, SEARCH_OPTIONS);
- const autoCompleteEmoticon = result ? result.items : recentEmoji;
+ const autoCompleteEmoticon = (result ? result.items : recentEmoji)
+ .sort((a, b) => a.shortcode.localeCompare(b.shortcode));
useEffect(() => {
if (query.text) search(query.text);
return (
<EmojiGroup key={id} id={id} label={label}>
{tab === EmojiBoardTab.Emoji
- ? searchResult.map((emoji) =>
+ ? searchResult.sort((a, b) => a.shortcode.localeCompare(b.shortcode)).map((emoji) =>
'unicode' in emoji ? (
<EmojiItem
key={emoji.unicode}
<>
{groups.map((pack) => (
<EmojiGroup key={pack.id} id={pack.id} label={pack.displayName || 'Unknown'}>
- {pack.getEmojis().map((image) => (
+ {pack.getEmojis().sort((a, b) => a.shortcode.localeCompare(b.shortcode)).map((image) => (
<EmojiItem
key={image.shortcode}
label={image.body || image.shortcode}
)}
{groups.map((pack) => (
<EmojiGroup key={pack.id} id={pack.id} label={pack.displayName || 'Unknown'}>
- {pack.getStickers().map((image) => (
+ {pack.getStickers().sort((a, b) => a.shortcode.localeCompare(b.shortcode)).map((image) => (
<StickerItem
key={image.shortcode}
label={image.body || image.shortcode}