Files
cidwa-components/src/snippets/table/table-custom-pagination.ts
T
2025-03-22 18:08:10 -05:00

51 lines
1.2 KiB
TypeScript

export const tableCustomPagination = `interface RowData {
name: string;
age: number;
email: string;
}
export default function Page() {
const headers: Header<RowData>[] = [
{ key: "name", label: "Nombre" },
{ key: "age", label: "Edad" },
{ key: "email", label: "Correo" },
];
const [currentPage, setCurrentPage] = useState(1);
const [data, setData] = useState<any[]>([]);
const [loading, setLoading] = useState(false);
const rowsPerPage = 2;
useEffect(() => {
setLoading(true);
fetch(\`https://api.example.com/users?page=\${currentPage}&limit=\${rowsPerPage}\`)
.then((res) => res.json())
.then((json) => {
setData(json.data);
})
.catch((err) => {
console.error("Error fetching data:", err);
setData([]);
})
.finally(() => setLoading(false));
}, [currentPage]);
return (
<>
{loading ? (
<TablaSkeleton rows={2} columns={3} />
) : (
<Table
headers={headers}
data={data}
rowsPerPage={rowsPerPage}
controlledPage={currentPage}
onPageChange={setCurrentPage}
/>
)}
</>
)
}
`;