diff --git a/src/app/portfolio/[slug]/components/dataTable.tsx b/src/app/portfolio/[slug]/components/dataTable.tsx index 0e63aac5..142cfc22 100644 --- a/src/app/portfolio/[slug]/components/dataTable.tsx +++ b/src/app/portfolio/[slug]/components/dataTable.tsx @@ -4,6 +4,7 @@ import { ColumnDef, ColumnFiltersState, SortingState, + PaginationState, flexRender, getCoreRowModel, getFilteredRowModel, @@ -45,14 +46,19 @@ export default function DataTable>({ columns, }: DataTableProps) { const [sorting, setSorting] = useState([]); - const [columnFilters, setColumnFilters] = - useState([]); + const [columnFilters, setColumnFilters] = useState([]); const [globalFilter, setGlobalFilter] = useState(""); - const [currentPageIndex, setCurrentPageIndex] = useState(0); + + // ✅ REQUIRED pagination state (fixes TS error) + const [pagination, setPagination] = useState({ + pageIndex: 0, + pageSize: 7, + }); const table = useReactTable({ - data, + data, columns, + getCoreRowModel: getCoreRowModel(), getSortedRowModel: getSortedRowModel(), getFilteredRowModel: getFilteredRowModel(), @@ -61,6 +67,7 @@ export default function DataTable>({ onSortingChange: setSorting, onColumnFiltersChange: setColumnFilters, onGlobalFilterChange: setGlobalFilter, + onPaginationChange: setPagination, globalFilterFn: fuzzyFilter, @@ -68,10 +75,7 @@ export default function DataTable>({ sorting, columnFilters, globalFilter, - pagination: { - pageIndex: currentPageIndex, - pageSize: 7, - }, + pagination, }, }); @@ -104,20 +108,14 @@ export default function DataTable>({ > {row.getVisibleCells().map((cell) => ( - {flexRender( - cell.column.columnDef.cell, - cell.getContext() - )} + {flexRender(cell.column.columnDef.cell, cell.getContext())} ))} )) ) : ( - + No results. @@ -126,11 +124,7 @@ export default function DataTable>({
- +
); diff --git a/src/app/portfolio/[slug]/components/propertyTablePagination.tsx b/src/app/portfolio/[slug]/components/propertyTablePagination.tsx index 006a0898..19ed8cef 100644 --- a/src/app/portfolio/[slug]/components/propertyTablePagination.tsx +++ b/src/app/portfolio/[slug]/components/propertyTablePagination.tsx @@ -5,96 +5,62 @@ import { ChevronDoubleLeftIcon, } from "@heroicons/react/24/outline"; import { Table } from "@tanstack/react-table"; - import { Button } from "@/app/shadcn_components/ui/button"; interface DataTablePaginationProps { table: Table; - loadPaginatedData: () => void; - currentPageIndex: number; - setCurrentPageIndex: (index: number) => void; } export function DataTablePagination({ table, - loadPaginatedData, - currentPageIndex, - setCurrentPageIndex, }: DataTablePaginationProps) { - // Check if the user has reached the last page - - const requestMoreData = () => { - // Check if the next page is the last one - if ( - table.getState().pagination.pageIndex + 1 === - table.getPageCount() - 1 - ) { - console.log("requesting more data"); - loadPaginatedData(); - } - }; - - const goToFinalPage = () => { - console.log("Go to final page"); - // Check if the next page is the last one - loadPaginatedData(); - }; + const { pageIndex } = table.getState().pagination; return (
-
- Page{" "} - {table.getPageCount() === 0 - ? 0 - : table.getState().pagination.pageIndex + 1}{" "} - of {table.getPageCount()} +
+ Page {pageIndex + 1} of {table.getPageCount()}
+
+ {/* First page */} + + {/* Previous */} + + {/* Next */} + + {/* Last */}