Merged into main

This commit is contained in:
Ceferino Patino 2022-08-02 17:43:21 -05:00
commit 651ff18d14

View file

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