Merge branch 'emoji-selector-recent' into 'main'

EmojiSelector: track chosen emojis in frequentlyUsedEmojis

Closes #1786

See merge request soapbox-pub/soapbox!3251
This commit is contained in:
Alex Gleason 2024-11-15 17:21:39 +00:00
commit b07bcd3ead
1 changed files with 21 additions and 1 deletions

View File

@ -3,6 +3,7 @@ import dotsIcon from '@tabler/icons/outline/dots.svg';
import clsx from 'clsx';
import { useEffect, useState } from 'react';
import { chooseEmoji } from 'soapbox/actions/emojis.ts';
import { closeModal, openModal } from 'soapbox/actions/modals.ts';
import EmojiComponent from 'soapbox/components/ui/emoji.tsx';
import HStack from 'soapbox/components/ui/hstack.tsx';
@ -96,6 +97,25 @@ const EmojiSelector: React.FC<IEmojiSelector> = ({
}
};
const handleReact = (emoji: string) => {
// Reverse lookup...
// This is hell.
const data = Object.values(emojiData.emojis).find((e) => e.skins.some((s) => s.native === emoji));
const skin = data?.skins.find((s) => s.native === emoji);
if (data && skin) {
dispatch(chooseEmoji({
id: data.id,
colons: `:${data.id}:`,
custom: false,
native: skin.native,
unified: skin.unified,
}));
}
onReact(emoji);
};
const handlePickEmoji = (emoji: Emoji) => {
onReact(emoji.custom ? emoji.id : emoji.native, emoji.custom ? emoji.imageUrl : undefined);
};
@ -155,7 +175,7 @@ const EmojiSelector: React.FC<IEmojiSelector> = ({
<EmojiButton
key={i}
emoji={emoji}
onClick={onReact}
onClick={handleReact}
tabIndex={visible ? 0 : -1}
/>
))}