import React from 'react'; import { Icon, Tooltip } 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 (