import { useMemo } from 'react'; import { Kind1 } from '@shared/notes/contents/kind1'; import { Kind1063 } from '@shared/notes/contents/kind1063'; import { NoteMetadata } from '@shared/notes/metadata'; import { NoteParent } from '@shared/notes/parent'; import { Repost } from '@shared/notes/repost'; import { User } from '@shared/user'; import { parser } from '@utils/parser'; import { LumeEvent } from '@utils/types'; interface Note { event: LumeEvent; skipMetadata?: boolean; } export function Note({ event, skipMetadata = false }: Note) { const isRepost = event.kind === 6; const renderParent = useMemo(() => { if (!isRepost && event.parent_id && event.parent_id !== event.event_id) { return ; } else { return null; } }, [event.parent_id]); const renderRepost = useMemo(() => { if (isRepost) { return ; } else { return null; } }, [event.kind]); const renderContent = useMemo(() => { switch (event.kind) { case 1: { const content = parser(event); return ; } case 6: return null; case 1063: return ; default: return (
Kind: {event.kind}

Lume isn't fully support this kind in newsfeed

{event.content}

); } }, [event.kind]); return (
{renderParent}
{renderContent} {!isRepost && !skipMetadata ? ( ) : (
)}
{renderRepost}
); }