import React from 'react'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import { Table, TableBody, TableCell, TablePagination, TableRow, TableFooter, Paper } from '@material-ui/core'; import TbPaginationActions from './TbPaginationActions'; 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 TbPaginationCustom 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 && ( )}
); } } TbPaginationCustom.propTypes = { classes: PropTypes.object.isRequired, }; export default withStyles(styles)(TbPaginationCustom);