You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

30 lines
1019 B

import { PICTURE_EVENT_KIND } from '@/constants'
import { useFetchEvent } from '@/hooks'
import { toNoStrudelArticle, toNoStrudelNote, toNoStrudelStream } from '@/lib/link'
import { cn } from '@/lib/utils'
import { kinds } from 'nostr-tools'
import NormalNoteCard from '../NoteCard/NormalNoteCard'
export function EmbeddedNote({ noteId, className }: { noteId: string; className?: string }) {
const { event } = useFetchEvent(noteId)
return event && [kinds.ShortTextNote, PICTURE_EVENT_KIND].includes(event.kind) ? (
<NormalNoteCard className={cn('w-full', className)} event={event} embedded />
) : (
<a
href={
event?.kind === kinds.LongFormArticle
? toNoStrudelArticle(noteId)
: event?.kind === kinds.LiveEvent
? toNoStrudelStream(noteId)
: toNoStrudelNote(noteId)
}
target="_blank"
className="text-highlight hover:underline"
onClick={(e) => e.stopPropagation()}
rel="noreferrer"
>
{noteId}
</a>
)
}