import React from 'react'; import unicodeMapping from 'soapbox/features/emoji/emoji-unicode-mapping-light'; import { useSettings } from 'soapbox/hooks'; import { joinPublicPath } from 'soapbox/utils/static'; import type { Map as ImmutableMap } from 'immutable'; interface IEmoji { emoji: string emojiMap: ImmutableMap> hovered: boolean } const Emoji: React.FC = ({ emoji, emojiMap, hovered }) => { const autoPlayGif = useSettings().get('autoPlayGif'); // @ts-ignore if (unicodeMapping[emoji]) { // @ts-ignore const { filename, shortCode } = unicodeMapping[emoji]; const title = shortCode ? `:${shortCode}:` : ''; return ( {emoji} ); } else if (emojiMap.get(emoji as any)) { const filename = (autoPlayGif || hovered) ? emojiMap.getIn([emoji, 'url']) : emojiMap.getIn([emoji, 'static_url']); const shortCode = `:${emoji}:`; return ( {shortCode} ); } else { return null; } }; export default Emoji;