import * as React from 'react'; import { categoryFromCategoryConfig, customGroupFromCategoryConfig, } from '../../config/categoryConfig'; import { useCategoriesConfig, useEmojiStyleConfig, useGetEmojiUrlConfig, useLazyLoadEmojisConfig, } from '../../config/useConfig'; import { emojiUnified } from '../../dataUtils/emojiUtils'; import { useIsomorphicLayoutEffect } from '../../hooks/useIsomorphicLayoutEffect'; import { useActiveSkinToneState, useEmojiSizeState, } from '../context/PickerContext'; import { useGetEmojisByCategory } from '../context/PickerDataContext'; import { ClickableEmoji } from '../emoji/Emoji'; export function MeasureEmoji() { const categories = useCategoriesConfig(); const getEmojisByCategory = useGetEmojisByCategory(); const emojiStyle = useEmojiStyleConfig(); const getEmojiUrl = useGetEmojiUrlConfig(); const lazyLoadEmojis = useLazyLoadEmojisConfig(); const [activeSkinTone] = useActiveSkinToneState(); const [emojiSize, setEmojiSize] = useEmojiSizeState(); const ref = React.useRef(null); useIsomorphicLayoutEffect(() => { if (ref.current) { setEmojiSize(ref.current.clientHeight); } }); if (emojiSize) { return null; } const firstCategory = categories[0]; const dummyEmoji = firstCategory ? getEmojisByCategory( categoryFromCategoryConfig(firstCategory), customGroupFromCategoryConfig(firstCategory), )[0] : undefined; const unified = dummyEmoji ? emojiUnified(dummyEmoji, activeSkinTone) : ''; if (!dummyEmoji) { return null; } return (
); }