import { Divider } from '@mui/material'; import Pagination from '@mui/material/Pagination'; import Stack from '@mui/material/Stack'; import * as React from 'react'; interface BasePaginationProps { page: number; totalCount: number; pageSize: number; onChange: (newPage: number) => void; } export default function BasePagination({ page, pageSize, totalCount, onChange }: BasePaginationProps) { const [inputValue, setInputValue] = React.useState(page); React.useEffect(() => { setInputValue(page); }, [page]); React.useEffect(() => { const handler = setTimeout(() => { const maxPage = Math.ceil(totalCount / pageSize); let newPage = inputValue; if (inputValue === 0) { newPage = 1; // Agar 0 kiritsa, 1 page ga o‘tsin } else if (inputValue > maxPage) { newPage = maxPage; // Max page dan oshsa, max page ga o‘tsin } if (newPage !== page) { onChange(newPage); } }, 1000); return () => clearTimeout(handler); }, [inputValue, page, totalCount, pageSize, onChange]); return ( }> onChange(newPage)} variant='outlined' shape='rounded' color='primary' sx={{ '.Mui-selected': { backgroundColor: theme => theme.palette.primary.main, color: '#fff', }, }} /> setInputValue(Number(e.target.value))} /> ); }