"use client"; import dynamic from "next/dynamic"; import { useMemo } from "react"; import { Button } from "@/components/ui/button"; import { RiCloseFill } from "react-icons/ri"; import { Avatar, AvatarImage, AvatarFallback } from "@radix-ui/react-avatar"; import { useRouter } from "next/navigation"; import { formatDate } from "@/lib/utils/dates"; import Actions from "./Actions"; import { NDKEvent } from "@nostr-dev-kit/ndk"; import { getTagAllValues, getTagValues } from "@/lib/nostr/utils"; import useProfile from "@/lib/hooks/useProfile"; import { nip19 } from "nostr-tools"; import { getNameToShow, getTwoLetters } from "@/lib/utils"; type ArticleProps = { event: NDKEvent; }; export default function ArticlePage({ event }: ArticleProps) { const Viewer = useMemo( () => dynamic(() => import("@/components/LongForm"), { ssr: false }), [], ); console.log(event); const router = useRouter(); const markdown = event.content; const pubkey = event.pubkey; const createdAt = getTagValues("published_at", event.tags) ? parseInt(getTagValues("published_at", event.tags) as string) : event.created_at; const { profile } = useProfile(pubkey); const npub = nip19.npubEncode(pubkey); const title = getTagValues("title", event.tags); const summary = getTagValues("summary", event.tags); const tags = getTagAllValues("t", event.tags); return (
{getTwoLetters({ profile, npub })} {getNameToShow({ profile, npub })}
{tags.map((t) => ( ))}
{!!createdAt && ( {formatDate(new Date(createdAt * 1000), "MMMM Do, YYYY")} )}

{title}

{summary}

); }