import { ImageWithFallback } from '@components/imageWithFallback'; import { RelayContext } from '@components/relaysProvider'; import { UserExtend } from '@components/user/extend'; import { activeAccountAtom } from '@stores/account'; import { relaysAtom } from '@stores/relays'; import { dateToUnix } from '@utils/getDate'; import CommentIcon from '@assets/icons/comment'; import * as Dialog from '@radix-ui/react-dialog'; import { SizeIcon } from '@radix-ui/react-icons'; import destr from 'destr'; import { useAtom, useAtomValue } from 'jotai'; import { useRouter } from 'next/router'; import { getEventHash, signEvent } from 'nostr-tools'; import { memo, useContext, useState } from 'react'; export const NoteComment = memo(function NoteComment({ count, eventID, eventPubkey, eventContent, eventTime, }: { count: number; eventID: string; eventPubkey: string; eventTime: string; eventContent: any; }) { const router = useRouter(); const pool: any = useContext(RelayContext); const relays = useAtomValue(relaysAtom); const [activeAccount] = useAtom(activeAccountAtom); const [open, setOpen] = useState(false); const [value, setValue] = useState(''); const profile = destr(activeAccount.metadata); const openThread = () => { router.push(`/newsfeed/${eventID}`); }; const submitEvent = () => { const event: any = { content: value, created_at: dateToUnix(), kind: 1, pubkey: activeAccount.id, tags: [['e', eventID]], }; event.id = getEventHash(event); event.sig = signEvent(event, activeAccount.privkey); pool.publish(event, relays); setOpen(false); }; return (
{/* root note */}
{eventContent}
{/* divider */}
{/* comment form */}