import { useSecondaryPage } from '@/PageManager' import { ExtendedKind } from '@/constants' import { useFetchEvent } from '@/hooks' import { extractImageInfosFromEventTags, getParentEventId, getUsingClient } from '@/lib/event' import { toNote } from '@/lib/link' import { Event } from 'nostr-tools' import { useMemo } from 'react' import Content from '../Content' import { FormattedTimestamp } from '../FormattedTimestamp' import ImageGallery from '../ImageGallery' import NoteOptions from '../NoteOptions' import NoteStats from '../NoteStats' import ParentNotePreview from '../ParentNotePreview' import UserAvatar from '../UserAvatar' import Username from '../Username' export default function Note({ event, size = 'normal', className, hideParentNotePreview = false, hideStats = false, fetchNoteStats = false }: { event: Event size?: 'normal' | 'small' className?: string hideParentNotePreview?: boolean hideStats?: boolean fetchNoteStats?: boolean }) { const { push } = useSecondaryPage() const parentEventId = useMemo( () => (hideParentNotePreview ? undefined : getParentEventId(event)), [event, hideParentNotePreview] ) const imageInfos = useMemo(() => extractImageInfosFromEventTags(event), [event]) const { event: parentEvent, isFetching } = useFetchEvent(parentEventId) const usingClient = useMemo(() => getUsingClient(event), [event]) return (