import React from 'react'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import { Table, TableBody, TableCell, TableFooter, TablePagination, TableRow, Paper } from '@material-ui/core'; let counter = 0; function createData(name, calories, fat) { counter += 1; return { id: counter, name, calories, fat }; } const styles = theme => ({ root: { width: '100%', marginTop: theme.spacing(3), }, table: { minWidth: 500, }, tableWrapper: { overflowX: 'auto', }, }); class TbPagination extends React.Component { constructor(props, context) { super(props, context); this.state = { data: [ createData('Cupcake', 305, 3.7), createData('Donut', 452, 25.0), createData('Eclair', 262, 16.0), createData('Frozen yoghurt', 159, 6.0), createData('Gingerbread', 356, 16.0), createData('Honeycomb', 408, 3.2), createData('Ice cream sandwich', 237, 9.0), createData('Jelly Bean', 375, 0.0), createData('KitKat', 518, 26.0), createData('Lollipop', 392, 0.2), createData('Marshmallow', 318, 0), createData('Nougat', 360, 19.0), createData('Oreo', 437, 18.0), ].sort((a, b) => (a.calories < b.calories ? -1 : 1)), page: 0, rowsPerPage: 5, }; } handleChangePage = (event, page) => { this.setState({ page }); }; handleChangeRowsPerPage = event => { this.setState({ rowsPerPage: event.target.value }); }; render() { const { classes } = this.props; const { data, rowsPerPage, page } = this.state; const emptyRows = rowsPerPage - Math.min(rowsPerPage, data.length - (page * rowsPerPage)); return (
{data.slice(page * rowsPerPage, (page * rowsPerPage) + rowsPerPage).map(n => ( {n.name} {n.calories} {n.fat} ))} {emptyRows > 0 && ( )}
); } } TbPagination.propTypes = { classes: PropTypes.object.isRequired, }; export default withStyles(styles)(TbPagination);