import { getLongFormArticleMetadataFromEvent } from '@/lib/event-metadata' import { toNote, toNoteList } from '@/lib/link' import { useSecondaryPage } from '@/PageManager' import { useContentPolicy } from '@/providers/ContentPolicyProvider' import { useScreenSize } from '@/providers/ScreenSizeProvider' import { Event, kinds } from 'nostr-tools' import { useMemo } from 'react' import Image from '../Image' export default function PublicationCard({ event, className }: { event: Event className?: string }) { const { isSmallScreen } = useScreenSize() const { push } = useSecondaryPage() const { autoLoadMedia } = useContentPolicy() const metadata = useMemo(() => getLongFormArticleMetadataFromEvent(event), [event]) const handleCardClick = (e: React.MouseEvent) => { e.stopPropagation() push(toNote(event.id)) } const titleComponent =
{metadata.title}
const tagsComponent = metadata.tags.length > 0 && (
{metadata.tags.map((tag) => (
{ e.stopPropagation() push(toNoteList({ hashtag: tag, kinds: [kinds.LongFormArticle] })) }} > #{tag}
))}
) const summaryComponent = metadata.summary && (
{metadata.summary}
) if (isSmallScreen) { return (
{metadata.image && autoLoadMedia && ( )}
{titleComponent} {summaryComponent} {tagsComponent}
) } return (
{metadata.image && autoLoadMedia && ( )}
{titleComponent} {summaryComponent} {tagsComponent}
) }