"use client"; import { useRouter } from "next/navigation"; import { useTranslations } from "next-intl"; import { useTransition } from "react"; import { deleteArticle } from "@/actions/admin-articles"; import { useConfirmDialog } from "@/components/admin/confirm-dialog"; import Link from "@/components/link"; export function ArticleCard({ id, title, image, createdAt, author, }: { id: string; title: string; image: string; createdAt: string | null; author?: string; }) { const t = useTranslations("pages.admin.articles"); const router = useRouter(); const [pending, startTransition] = useTransition(); const { confirm, dialog: confirmDialog } = useConfirmDialog(); async function handleDelete() { const ok = await confirm({ title: t("delete"), description: t("confirmDelete", { title }), confirmLabel: t("delete"), variant: "danger", }); if (!ok) return; startTransition(async () => { const fd = new FormData(); fd.set("id", id); await deleteArticle(fd); router.refresh(); }); } return (
{createdAt ? createdAt.slice(0, 10) : "—"} {author ? ( <> · {author} > ) : null}