"use client"; import { Badge } from "@/components/ui/badge"; import { formatDate } from "@/lib/formatter"; import type { RouterOutputs } from "@openstatus/api"; import type { ColumnDef } from "@tanstack/react-table"; import { DataTableRowActions } from "./data-table-row-actions"; type Subscriber = RouterOutputs["pageSubscriber"]["list"][number]; export const columns: ColumnDef[] = [ { accessorKey: "email", header: "Email", enableSorting: false, enableHiding: false, }, { id: "status", header: "Status", enableSorting: false, enableHiding: false, cell: ({ row }) => { const unsubscribedAt = row.original.unsubscribedAt; const acceptedAt = row.original.acceptedAt; if (unsubscribedAt) { return Unsubscribed; } if (!acceptedAt) { return Pending; } return Active; }, }, { accessorKey: "createdAt", header: "Created At", enableSorting: false, enableHiding: false, cell: ({ row }) => { const value = row.getValue("createdAt"); if (value instanceof Date) return formatDate(value); if (!value) return "-"; return value; }, meta: { cellClassName: "font-mono", }, }, { accessorKey: "acceptedAt", header: "Accepted At", enableSorting: false, enableHiding: false, cell: ({ row }) => { const value = row.getValue("acceptedAt"); if (value instanceof Date) return formatDate(value); if (!value) return "-"; return value; }, meta: { cellClassName: "font-mono", }, }, { accessorKey: "unsubscribedAt", header: "Unsubscribed At", enableSorting: false, enableHiding: false, cell: ({ row }) => { const value = row.getValue("unsubscribedAt"); if (value instanceof Date) return formatDate(value); if (!value) return "-"; return value; }, meta: { cellClassName: "font-mono", }, }, { id: "actions", cell: ({ row }) => , meta: { cellClassName: "w-8", }, }, ];