Translate emoji completions in composer

This commit is contained in:
Jamie Kyle
2025-04-23 16:03:35 -07:00
committed by GitHub
parent 6a20d91b71
commit e802ea0dc7
12 changed files with 216 additions and 273 deletions

View File

@@ -60,7 +60,6 @@ import { getClassNamesFor } from '../util/getClassNamesFor';
import { isNotNil } from '../util/isNotNil';
import * as log from '../logging/log';
import * as Errors from '../types/errors';
import { useEmojiSearch } from '../hooks/useEmojiSearch';
import type { LinkPreviewForUIType } from '../types/message/LinkPreviews';
import { StagedLinkPreview } from './conversation/StagedLinkPreview';
import type { DraftEditMessageType } from '../model-types.d';
@@ -79,6 +78,9 @@ import { dropNull } from '../util/dropNull';
import { SimpleQuillWrapper } from './SimpleQuillWrapper';
import type { EmojiSkinTone } from './fun/data/emojis';
import { FUN_STATIC_EMOJI_CLASS } from './fun/FunEmoji';
import { useFunEmojiSearch } from './fun/useFunEmojiSearch';
import type { EmojiCompletionOptions } from '../quill/emoji/completion';
import { useFunEmojiLocalizer } from './fun/useFunEmojiLocalizer';
Quill.register(
{
@@ -192,7 +194,7 @@ export function CompositionInput(props: Props): React.ReactElement {
} = props;
const [emojiCompletionElement, setEmojiCompletionElement] =
React.useState<JSX.Element>();
React.useState<JSX.Element | null>();
const [formattingChooserElement, setFormattingChooserElement] =
React.useState<JSX.Element>();
const [lastSelectionRange, setLastSelectionRange] =
@@ -770,7 +772,8 @@ export function CompositionInput(props: Props): React.ReactElement {
const callbacksRef = React.useRef(unstaleCallbacks);
callbacksRef.current = unstaleCallbacks;
const search = useEmojiSearch(i18n.getLocale());
const emojiSearch = useFunEmojiSearch();
const emojiLocalizer = useFunEmojiLocalizer();
const reactQuill = React.useMemo(
() => {
@@ -839,8 +842,9 @@ export function CompositionInput(props: Props): React.ReactElement {
onPickEmoji: (emoji: EmojiPickDataType) =>
callbacksRef.current.onPickEmoji(emoji),
emojiSkinToneDefault,
search,
},
emojiSearch,
emojiLocalizer,
} satisfies EmojiCompletionOptions,
autoSubstituteAsciiEmojis: {
emojiSkinToneDefault,
} satisfies AutoSubstituteAsciiEmojisOptions,