import React from "react"; import {Paper, Table, TableBody, TableCell, TableContainer, TableHead, TablePagination, TableRow} from "@mui/material"; interface Column { id: string; label: string; minWidth?: number; align?: 'right'; format?: (value: any) => any; } export default function HeadTable({columns, rows}: { rows: any[], columns: Column[] }) { const [page, setPage] = React.useState(0); const [rowsPerPage, setRowsPerPage] = React.useState(10); const handleChangePage = (event: unknown, newPage: number) => { setPage(newPage); }; const handleChangeRowsPerPage = (event: React.ChangeEvent) => { setRowsPerPage(+event.target.value); setPage(0); }; return ( {columns.map((column) => ( {column.label} ))} {rows .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) .map((row: any) => { return ( {columns.map((column) => { const value = row[column.id as keyof typeof row] return ( {column.format ? column.format(value) : value} ); })} ); })}
); }