From 651ff18d1472f8594570f1f253c20eb5ec22487f Mon Sep 17 00:00:00 2001 From: C4 Patino Date: Tue, 2 Aug 2022 17:43:21 -0500 Subject: [PATCH] Merged into main --- .../controllers/PaginatedListController.jsx | 64 +++++++++++-------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/client/src/controllers/PaginatedListController.jsx b/client/src/controllers/PaginatedListController.jsx index b02b158..ed3a5d4 100644 --- a/client/src/controllers/PaginatedListController.jsx +++ b/client/src/controllers/PaginatedListController.jsx @@ -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 ( - d).slice((page - 1) * rowsPerPage, page * rowsPerPage), - Component, - handleChangePage, - noData, - page, - rowsPerPage - }} /> + d) + .slice((page - 1) * rowsPerPage, page * rowsPerPage), + Component, + handleChangePage, + noData, + page, + rowsPerPage, + }} + /> ); }