import { useSecondaryPage } from '@/PageManager' import Nip22ReplyNoteList from '@/components/Nip22ReplyNoteList' import Note from '@/components/Note' import PictureNote from '@/components/PictureNote' import ReplyNoteList from '@/components/ReplyNoteList' import UserAvatar from '@/components/UserAvatar' import Username from '@/components/Username' import { Card } from '@/components/ui/card' import { Separator } from '@/components/ui/separator' import { Skeleton } from '@/components/ui/skeleton' import { useFetchEvent } from '@/hooks' import SecondaryPageLayout from '@/layouts/SecondaryPageLayout' import { getParentEventId, getRootEventId, isPictureEvent } from '@/lib/event' import { toNote } from '@/lib/link' import { kinds } from 'nostr-tools' import { forwardRef, useMemo } from 'react' import { useTranslation } from 'react-i18next' import NotFoundPage from '../NotFoundPage' const NotePage = forwardRef(({ id, index }: { id?: string; index?: number }, ref) => { const { t } = useTranslation() const { event, isFetching } = useFetchEvent(id) const parentEventId = useMemo(() => getParentEventId(event), [event]) const rootEventId = useMemo(() => getRootEventId(event), [event]) if (!event && isFetching) { return (
) } if (!event) return if (isPictureEvent(event)) { return ( ) } return (
{rootEventId !== parentEventId && ( )}
{event.kind === kinds.ShortTextNote ? ( ) : isPictureEvent(event) ? ( ) : null}
) }) NotePage.displayName = 'NotePage' export default NotePage function ParentNote({ eventId }: { eventId?: string }) { const { push } = useSecondaryPage() const { event } = useFetchEvent(eventId) if (!event) return null return (
push(toNote(event))} >
{event.content}
) }