"use client"; import { Trash2 } from "lucide-react"; import { useTranslations } from "next-intl"; import { deleteAd } from "@/actions/admin-ads"; import { useConfirmDialog } from "@/components/admin/confirm-dialog"; import Link from "@/components/link"; import { Button } from "@/components/ui/button"; import { useServerAction } from "@/hooks/use-server-action"; export type AdRow = { id: string; image: string; createdAt: string | null; }; export function AdsTable({ ads }: { ads: AdRow[] }) { const t = useTranslations("pages.admin.ads"); const { run, isPending } = useServerAction(); const { confirm, dialog: confirmDialog } = useConfirmDialog(); async function handleDelete(row: AdRow) { const ok = await confirm({ title: t("delete"), description: t("confirmDelete"), confirmLabel: t("delete"), cancelLabel: t("form.cancel"), }); if (!ok) return; run(() => deleteAd({ id: row.id }), { successMessage: t("deleteSuccess"), errorMessage: t("deleteError"), }); } return ( <> {confirmDialog} {ads.map((ad) => ( ))}
{t("colPreview")} {t("colImage")} {t("colCreated")} {t("colActions")}
{ad.image} {ad.createdAt ?? "—"}
{t("edit")}
); }