8 changed files with 61 additions and 19 deletions
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
import { useSecondaryPage } from '@renderer/PageManager' |
||||
import { Card } from '@renderer/components/ui/card' |
||||
import { toNote } from '@renderer/lib/link' |
||||
import { Event } from 'nostr-tools' |
||||
import UserAvatar from '../UserAvatar' |
||||
import Username from '../Username' |
||||
|
||||
export default function ParentNote({ event }: { event: Event }) { |
||||
const { push } = useSecondaryPage() |
||||
|
||||
return ( |
||||
<div> |
||||
<Card |
||||
className="flex space-x-1 p-1 items-center hover:bg-muted/50 cursor-pointer text-xs text-muted-foreground hover:text-foreground" |
||||
onClick={() => push(toNote(event))} |
||||
> |
||||
<UserAvatar userId={event.pubkey} size="tiny" /> |
||||
<Username userId={event.pubkey} className="font-semibold" /> |
||||
<div className="truncate">{event.content}</div> |
||||
</Card> |
||||
<div className="ml-5 w-px h-2 bg-border" /> |
||||
</div> |
||||
) |
||||
} |
||||
@ -1,19 +1,25 @@
@@ -1,19 +1,25 @@
|
||||
import Note from '@renderer/components/Note' |
||||
import ParentNote from '@renderer/components/ParentNote' |
||||
import ReplyNoteList from '@renderer/components/ReplyNoteList' |
||||
import { Separator } from '@renderer/components/ui/separator' |
||||
import { useFetchEventById } from '@renderer/hooks' |
||||
import SecondaryPageLayout from '@renderer/layouts/SecondaryPageLayout' |
||||
import { getParentEventId, getRootEventId } from '@renderer/lib/event' |
||||
import { Event } from 'nostr-tools' |
||||
|
||||
export default function NotePage({ event }: { event?: Event }) { |
||||
const parentEvent = useFetchEventById(getParentEventId(event)) |
||||
const rootEvent = useFetchEventById(getRootEventId(event)) |
||||
|
||||
if (!event) return null |
||||
|
||||
return ( |
||||
<SecondaryPageLayout titlebarContent="note"> |
||||
{event && ( |
||||
<> |
||||
<Note key={`note-${event.id}`} event={event} fetchNoteStats /> |
||||
<Separator className="mt-2" /> |
||||
<ReplyNoteList key={`reply-note-list-${event.id}`} event={event} /> |
||||
</> |
||||
)} |
||||
{rootEvent && <ParentNote key={`root-note-${event.id}`} event={rootEvent} />} |
||||
{parentEvent && <ParentNote key={`parent-note-${event.id}`} event={parentEvent} />} |
||||
<Note key={`note-${event.id}`} event={event} fetchNoteStats /> |
||||
<Separator className="my-2" /> |
||||
<ReplyNoteList key={`reply-note-list-${event.id}`} event={event} /> |
||||
</SecondaryPageLayout> |
||||
) |
||||
} |
||||
|
||||
Loading…
Reference in new issue