import React, { useContext } from 'react'; import { CanonicalEmoji, Emoji as EmojiCharacter } from 'interweave-emoji'; import { Context } from './Context'; import { useTitleFormat } from './hooks/useTitleFormat'; export interface PreviewBarProps { emoji?: CanonicalEmoji | null; hideEmoticon: boolean; hideShortcodes: boolean; noPreview?: React.ReactNode; } // eslint-disable-next-line complexity export function PreviewBar({ emoji, hideEmoticon, hideShortcodes, noPreview }: PreviewBarProps) { const { classNames, emojiLargeSize, emojiPath, emojiSource, messages } = useContext(Context); const title = useTitleFormat(emoji?.label ?? ''); const subtitle = []; if (!emoji) { const preview = noPreview ?? messages.noPreview; return (
{preview &&
{preview}
}
); } if (!hideEmoticon && emoji.emoticon) { if (Array.isArray(emoji.emoticon)) { subtitle.push(...emoji.emoticon); } else { subtitle.push(emoji.emoticon); } } if (!hideShortcodes && emoji.canonical_shortcodes) { subtitle.push(...emoji.canonical_shortcodes); } return (
{title && (
{title} {emoji.skins && emoji.skins.length > 0 && ( // eslint-disable-next-line react/jsx-no-literals {`(+${emoji.skins.length})`} )}
)} {subtitle.length > 0 && (
{subtitle.join(' ')}
)}
); }