Merged into main
This commit is contained in:
parent
a9470e2c99
commit
651ff18d14
1 changed files with 36 additions and 28 deletions
|
|
@ -3,9 +3,13 @@ import { PaginatedList } from 'components';
|
|||
import { useSearchParams } from 'react-router-dom';
|
||||
|
||||
const rowsPerPage = 5;
|
||||
export default function PaginatedListController({ count, Component, getData, noData }) {
|
||||
const [searchParams] = useSearchParams();
|
||||
|
||||
export default function PaginatedListController({
|
||||
concat = true,
|
||||
count,
|
||||
Component,
|
||||
getData,
|
||||
noData,
|
||||
}) {
|
||||
const [data, setData] = useState([]);
|
||||
const [page, setPage] = useState(1);
|
||||
const [load, setLoad] = useState(true);
|
||||
|
|
@ -16,36 +20,40 @@ export default function PaginatedListController({ count, Component, getData, noD
|
|||
loadData();
|
||||
};
|
||||
|
||||
const loadData = async (clear) => {
|
||||
const newData = await getData(clear ? {} : data[data.length - 1] ?? {});
|
||||
if (newData?.length)
|
||||
if (clear)
|
||||
setData(newData);
|
||||
else
|
||||
setData(data.concat(newData));
|
||||
else
|
||||
setLoad(false);
|
||||
}
|
||||
const loadData = async () => {
|
||||
const newData = await getData(
|
||||
concat ? data[data.length - 1] ?? {} : {}
|
||||
);
|
||||
if (newData.length)
|
||||
if (concat) setData(data.concat(newData));
|
||||
else setData(newData);
|
||||
else setLoad(false);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
loadData(true);
|
||||
}, [searchParams])
|
||||
}, [searchParams]);
|
||||
|
||||
|
||||
// useEffect(() => {
|
||||
// const interval = setInterval(() => {
|
||||
// loadQuestions(sort);
|
||||
// }, 60000);
|
||||
useEffect(() => {
|
||||
const interval = setInterval(() => {
|
||||
loadData();
|
||||
}, 60000);
|
||||
return () => clearInterval(interval);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<PaginatedList {...{
|
||||
count: Math.ceil((count ?? data.length) / rowsPerPage),
|
||||
data: data.filter(d => d).slice((page - 1) * rowsPerPage, page * rowsPerPage),
|
||||
Component,
|
||||
handleChangePage,
|
||||
noData,
|
||||
page,
|
||||
rowsPerPage
|
||||
}} />
|
||||
<PaginatedList
|
||||
{...{
|
||||
count: Math.ceil((count ?? data.length) / rowsPerPage),
|
||||
data: data
|
||||
.filter((d) => d)
|
||||
.slice((page - 1) * rowsPerPage, page * rowsPerPage),
|
||||
Component,
|
||||
handleChangePage,
|
||||
noData,
|
||||
page,
|
||||
rowsPerPage,
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue