//@ts-nocheck import React from 'react' import { Icon, Popup } from 'UI' import cn from 'classnames' import { debounce } from 'App/utils'; import { numberWithCommas } from 'App/utils'; interface Props { page: number totalPages: number onPageChange: (page: number) => void limit?: number debounceRequest?: number } export default function Pagination(props: Props) { const { page, totalPages, onPageChange, limit = 5, debounceRequest = 0 } = props; const [currentPage, setCurrentPage] = React.useState(page); React.useMemo( () => setCurrentPage(page), [page], ); const debounceChange = React.useCallback(debounce(onPageChange, debounceRequest), []); const changePage = (page: number) => { if (page > 0 && page <= totalPages) { setCurrentPage(page); debounceChange(page); } } const isFirstPage = currentPage === 1; const isLastPage = currentPage === totalPages; return (
Page changePage(parseInt(e.target.value))} /> of {numberWithCommas(totalPages)}
) }