import TableFilter from '@/components/table/table-filter'; import TableFooter from '@/components/table/table-footer'; import TableHeader from '@/components/table/table-header'; import { Card } from '@/components/ui/card'; import { Table, TableBody, TableCell, TableRow } from '@/components/ui/table'; import DashboardLayout from '@/layouts/dashboard/layout'; import { SharedData } from '@/types/global'; import { flexRender, getCoreRowModel, getFilteredRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table'; import { ReactNode, useState } from 'react'; import TableColumn from './partials/offline-table-columns'; import VerifyPaymentModal from './partials/verify-payment-modal'; interface Props extends SharedData { payments: Pagination; } const Offline = ({ payments, translate }: Props) => { const { dashboard } = translate; const [selectedPayment, setSelectedPayment] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const handleVerifyClick = (payment: PaymentHistory) => { setSelectedPayment(payment); setIsModalOpen(true); }; const table = useReactTable({ data: payments.data, columns: TableColumn(handleVerifyClick), getCoreRowModel: getCoreRowModel(), getSortedRowModel: getSortedRowModel(), getFilteredRowModel: getFilteredRowModel(), }); return ( <> {table.getRowModel().rows?.length ? ( table.getRowModel().rows.map((row) => ( {row.getVisibleCells().map((cell) => ( {flexRender(cell.column.columnDef.cell, cell.getContext())} ))} )) ) : ( {dashboard.no_results} )}
{selectedPayment && ( { setIsModalOpen(false); setSelectedPayment(null); }} /> )} ); }; Offline.layout = (children: ReactNode) => {children}; export default Offline;