import * as React from 'react'; import cn from 'classnames'; import { SubNavStyled, SubNavItemStyled } from './styled'; import { IPaginationProps } from './types'; class Pagination extends React.PureComponent { public static defaultProps = { hasPreventDefault: false, }; public handleClick = (e: React.MouseEvent) => { const { hasPreventDefault } = this.props; if (hasPreventDefault) { e.preventDefault(); } const { dataset } = e.target as any; this.props.handleDataChange(Number(dataset.page)); } /** * Рендер элементов по количеству страниц * */ public renderSubNavByMaxPage = (): React.ReactNode => { const { pageCurrent } = this.props; const subNavList: React.ReactNode[] = []; for (let i = 0; i < this.props.pageCount + 1; i++) { const cnSubNav = cn('subnav-item', { selected: pageCurrent === i }); subNavList.push( {i + 1} , ); } return subNavList; } public render(): JSX.Element { return {this.renderSubNavByMaxPage()}; } } export default Pagination;