import TableFilter from '@/components/table/table-filter'; import TableFooter from '@/components/table/table-footer'; import TableHeader from '@/components/table/table-header'; import { Button } from '@/components/ui/button'; import { Card } from '@/components/ui/card'; import { Separator } from '@/components/ui/separator'; import { Table, TableBody, TableCell, TableRow } from '@/components/ui/table'; import { useAuth } from '@/hooks/use-auth'; import DashboardLayout from '@/layouts/dashboard/layout'; import { SharedData } from '@/types/global'; import { SortingState, flexRender, getCoreRowModel, getFilteredRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table'; import * as React from 'react'; import { ReactNode } from 'react'; import AdminTableColumn from './partials/admin-table-columns'; import EnrollmentModal from './partials/enrollment-modal'; import InstructorTableColumn from './partials/instructor-table-columns'; interface Props extends SharedData { enrollments: Pagination; } const Courses = (props: Props) => { const { isAdmin } = useAuth(); const [sorting, setSorting] = React.useState([]); const { translate, enrollments } = props; const { button, dashboard } = translate; const table = useReactTable({ data: enrollments.data, columns: isAdmin ? AdminTableColumn('course', translate, 'enrollments.destroy') : InstructorTableColumn('course', translate), onSortingChange: setSorting, getCoreRowModel: getCoreRowModel(), getSortedRowModel: getSortedRowModel(), getFilteredRowModel: getFilteredRowModel(), state: { sorting }, }); return (
{button.add_new_enrollment}} /> } // exportPath={route('users.export')} /> {enrollments.data && enrollments.data.length > 0 ? ( table.getRowModel().rows.map((row) => ( {row.getVisibleCells().map((cell) => ( {flexRender(cell.column.columnDef.cell, cell.getContext())} ))} )) ) : ( {dashboard.no_results} )}
); }; Courses.layout = (page: ReactNode) => ; export default Courses;