"use client"; import Link from "next/link"; import { useTranslations } from "next-intl"; import { DataTable } from "@/components/admin/data-table"; import { Badge } from "@/components/ui/badge"; import type { DataTableColumn, PaginatedResult } from "@/types"; export interface HelpTicketRow { id: string; title: string; user: string; userId: number | null; replies: number; open: boolean; date: string; updated: string; } export function HelpTicketsTable({ data, }: { data: PaginatedResult; }) { const t = useTranslations("pages.admin.helpTickets"); const columns: DataTableColumn[] = [ { key: "title", label: t("colTicket"), sortable: true, render: (_value, row) => (
#{row.id} {row.title}
{t("meta", { user: row.user, count: row.replies })}
), }, { key: "open", label: t("colStatus"), sortable: true, filterKey: "filter_status", filterOptions: [ { label: t("presetOpen"), value: "open" }, { label: t("statusClosed"), value: "closed" }, ], render: (value) => { const open = value === true || value === "true"; return ( {open ? t("statusOpen") : t("statusClosed")} ); }, }, { key: "user", label: t("colUser"), sortable: true }, { key: "date", label: t("colCreated"), sortable: true }, { key: "updated", label: t("colUpdated"), sortable: true }, ]; return ( ); }