import * as React from 'react'; import { emojiName, emojiUrlByUnified } from '../../dataUtils/emojiUtils'; import { isCustomEmoji } from '../../typeRefinements/typeRefinements'; import { EmojiStyle } from '../../types/exposedTypes'; import { useEmojisThatFailedToLoadState } from '../context/PickerContext'; import { usePickerDataContext } from '../context/PickerDataContext'; import { BaseEmojiProps } from './BaseEmojiProps'; import { EmojiImg } from './EmojiImg'; import { NativeEmoji } from './NativeEmoji'; export function ViewOnlyEmoji({ emoji, unified, emojiStyle, size, lazyLoad, getEmojiUrl = emojiUrlByUnified, className, }: BaseEmojiProps) { const [, setEmojisThatFailedToLoad] = useEmojisThatFailedToLoadState(); const { emojiByUnified } = usePickerDataContext(); const style = {} as React.CSSProperties; if (size) { style.width = style.height = style.fontSize = `${size}px`; } const emojiToRender = emoji ? emoji : emojiByUnified(unified); if (!emojiToRender) { return null; } if (isCustomEmoji(emojiToRender)) { return ( ); } return ( <> {emojiStyle === EmojiStyle.NATIVE ? ( ) : ( )} ); function onError() { setEmojisThatFailedToLoad((prev) => new Set(prev).add(unified)); } }