import { assessmentRequestManagementQueryOptions } from "@/modules/assessmentRequestManagement/queries/assessmentRequestManagementQueries"; import PageTemplate from "@/components/PageTemplate"; import { createLazyFileRoute } from "@tanstack/react-router"; import ExtractQueryDataType from "@/types/ExtractQueryDataType"; import { createColumnHelper } from "@tanstack/react-table"; import { Flex } from "@mantine/core"; import { Badge } from "@/shadcn/components/ui/badge"; import createActionButtons from "@/utils/createActionButton"; import { TbEye } from "react-icons/tb"; import AssessmentRequestManagementFormModal from "@/modules/assessmentRequestManagement/modals/AssessmentRequestManagementFormModal"; import { useState } from "react"; import { useQueryClient } from "@tanstack/react-query"; export const Route = createLazyFileRoute("/_dashboardLayout/assessmentRequestManagements/")({ component: AssessmentRequestManagementsPage, }); type DataType = ExtractQueryDataType; const columnHelper = createColumnHelper(); export default function AssessmentRequestManagementsPage() { const [selectedId, setSelectedId] = useState(null); const [modalOpen, setModalOpen] = useState(false); const queryClient = useQueryClient(); const handleDetailClick = (id: string) => { setSelectedId(id); setModalOpen(true); }; // Helper function to format the date const formatDate = (dateString: string | null) => { if (!dateString) { return "Tanggal tidak tersedia"; } const date = new Date(dateString); return new Intl.DateTimeFormat("id-ID", { hour12: true, minute: "2-digit", hour: "2-digit", day: "2-digit", month: "long", year: "numeric", }) .format(date) .replace(/\./g, ':') .replace('pukul ', ''); }; return ( { setModalOpen(false); queryClient.invalidateQueries(); }} />, ]} createButton={null} columnDefs={[ columnHelper.display({ header: "#", cell: (props) => props.row.index + 1, }), columnHelper.display({ header: "Tanggal", cell: (props) => formatDate(props.row.original.tanggal), }), columnHelper.display({ header: "Nama Responden", cell: (props) => props.row.original.namaResponden, }), columnHelper.display({ header: "Nama Perusahaan", cell: (props) => props.row.original.namaPerusahaan, }), columnHelper.display({ header: "Status", cell: (props) => { const status = props.row.original.status; switch (status) { case "menunggu konfirmasi": return Menunggu Konfirmasi; case "diterima": return Diterima; case "ditolak": return Ditolak; case "selesai": return Selesai; default: return Tidak diketahui; } }, }), columnHelper.display({ header: "Aksi", cell: (props) => ( {createActionButtons([ { label: "Detail", permission: true, action: () => handleDetailClick(props.row.original.idPermohonan), color: "green", icon: , }, ])} ), }), ]} /> ); }