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))}
/>
);
}