import React from 'react';
import { createUltimatePagination, ITEM_TYPES } from 'react-ultimate-pagination';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import NavigationFirstPage from '@material-ui/icons/FirstPage';
import NavigationLastPage from '@material-ui/icons/LastPage';
import NavigationChevronLeft from '@material-ui/icons/ChevronLeft';
import NavigationChevronRight from '@material-ui/icons/ChevronRight';
import { Button, Hidden, IconButton } from '@material-ui/core';
const flatButtonStyle = {
minWidth: 36
};
const styles = {
paging: {
marginTop: 10,
display: 'flex',
justifyContent: 'center',
alignItems: 'center'
}
};
const Page = ({
value,
isActive,
onClick,
isDisabled
}) => (
);
Page.propTypes = {
value: PropTypes.number.isRequired,
isActive: PropTypes.bool.isRequired,
onClick: PropTypes.func.isRequired,
isDisabled: PropTypes.bool.isRequired,
};
const Ellipsis = ({ onClick, isDisabled }) => (
);
Ellipsis.propTypes = {
onClick: PropTypes.func.isRequired,
isDisabled: PropTypes.bool.isRequired,
};
const FirstPageLink = ({ onClick, isDisabled }) => (
);
FirstPageLink.propTypes = {
onClick: PropTypes.func.isRequired,
isDisabled: PropTypes.bool.isRequired,
};
const PreviousPageLink = ({ onClick, isDisabled }) => (
);
PreviousPageLink.propTypes = {
onClick: PropTypes.func.isRequired,
isDisabled: PropTypes.bool.isRequired,
};
const NextPageLink = ({ onClick, isDisabled }) => (
);
NextPageLink.propTypes = {
onClick: PropTypes.func.isRequired,
isDisabled: PropTypes.bool.isRequired,
};
const LastPageLink = ({ onClick, isDisabled }) => (
);
LastPageLink.propTypes = {
onClick: PropTypes.func.isRequired,
isDisabled: PropTypes.bool.isRequired,
};
const itemTypeToComponent = {
[ITEM_TYPES.PAGE]: Page,
[ITEM_TYPES.ELLIPSIS]: Ellipsis,
[ITEM_TYPES.FIRST_PAGE_LINK]: FirstPageLink,
[ITEM_TYPES.PREVIOUS_PAGE_LINK]: PreviousPageLink,
[ITEM_TYPES.NEXT_PAGE_LINK]: NextPageLink,
[ITEM_TYPES.LAST_PAGE_LINK]: LastPageLink
};
const UltmPagination = createUltimatePagination({ itemTypeToComponent });
class Pagination extends React.Component {
constructor(props) {
super();
this.state = {
totalPages: props.totpages
};
}
render() {
const hide = true;
const { totalPages } = this.state;
const {
classes,
curpage,
onChange,
onGoFirst,
onPrev,
onNext,
onGoLast,
...rest
} = this.props;
return (
= totalPages} onClick={onNext} />
= totalPages} onClick={onGoLast} />
);
}
}
Pagination.propTypes = {
curpage: PropTypes.number.isRequired,
totpages: PropTypes.number.isRequired,
onChange: PropTypes.func.isRequired,
onPrev: PropTypes.func.isRequired,
onNext: PropTypes.func.isRequired,
onGoFirst: PropTypes.func.isRequired,
onGoLast: PropTypes.func.isRequired,
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(Pagination);