import { NDKEvent, NDKKind } from '@nostr-dev-kit/ndk'; import { ArticleNote, FileNote, NoteSkeleton, TextNote, UnknownNote, } from '@shared/notes'; import { User } from '@shared/user'; import { WidgetKinds } from '@stores/constants'; import { formatCreatedAt } from '@utils/createdAt'; import { useEvent } from '@utils/hooks/useEvent'; import { useWidget } from '@utils/hooks/useWidget'; export function NotifyNote({ event }: { event: NDKEvent }) { const createdAt = formatCreatedAt(event.created_at, false); const rootEventId = event.tags.find((el) => el[0] === 'e')?.[1]; const { status, data } = useEvent(rootEventId); const { addWidget } = useWidget(); const openThread = (event, thread: string) => { const selection = window.getSelection(); if (selection.toString().length === 0) { addWidget.mutate({ kind: WidgetKinds.local.thread, title: 'Thread', content: thread, }); } else { event.stopPropagation(); } }; const renderKind = (event: NDKEvent) => { if (!event) return null; switch (event.kind) { case NDKKind.Text: return ; case NDKKind.Article: return ; case 1063: return ; default: return ; } }; const renderText = (kind: number) => { switch (kind) { case NDKKind.Text: return 'replied'; case NDKKind.Reaction: return `reacted ${event.content}`; case NDKKind.Repost: return 'reposted'; case NDKKind.Zap: return 'zapped'; default: return 'Unknown'; } }; if (status === 'pending') { return (
); } return (

{renderText(event.kind)}

{createdAt}
{event.kind === 1 ? : null}
openThread(e, data?.id)} onKeyDown={(e) => openThread(e, data?.id)} role="button" tabIndex={0} className="cursor-default rounded-lg border border-neutral-300 bg-neutral-200 p-3 dark:border-neutral-700 dark:bg-neutral-800" >
{renderKind(data)}
); }