import { useSecondaryPage } from '@/PageManager' import { extractImageInfosFromEventTags, getParentEventId, getUsingClient, isPictureEvent, isSupportedKind } from '@/lib/event' import { toNote } from '@/lib/link' import { useScreenSize } from '@/providers/ScreenSizeProvider' import { Event, kinds } from 'nostr-tools' import { useMemo } from 'react' import Content from '../Content' import { FormattedTimestamp } from '../FormattedTimestamp' import ImageGallery from '../ImageGallery' import Nip05 from '../Nip05' import NoteOptions from '../NoteOptions' import ParentNotePreview from '../ParentNotePreview' import TranslateButton from '../TranslateButton' import UserAvatar from '../UserAvatar' import Username from '../Username' import Highlight from './Highlight' import IValue from './IValue' import { UnknownNote } from './UnknownNote' export default function Note({ event, size = 'normal', className, hideParentNotePreview = false }: { event: Event size?: 'normal' | 'small' className?: string hideParentNotePreview?: boolean }) { const { push } = useSecondaryPage() const { isSmallScreen } = useScreenSize() const parentEventId = useMemo( () => (hideParentNotePreview ? undefined : getParentEventId(event)), [event, hideParentNotePreview] ) const imageInfos = useMemo( () => (isPictureEvent(event) ? extractImageInfosFromEventTags(event) : []), [event] ) const usingClient = useMemo(() => getUsingClient(event), [event]) return (