From 7ec8047e1309cc0c4853e52aecf64ea7e3aba90f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Pailharey?= <rpailharey@grandlyon.com> Date: Tue, 21 Feb 2023 16:48:59 +0100 Subject: [PATCH] fix: returns to first page when search changes --- src/components/Consents/Consents.tsx | 45 +++++++++++++++------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/components/Consents/Consents.tsx b/src/components/Consents/Consents.tsx index 6be71da5..f8caf063 100644 --- a/src/components/Consents/Consents.tsx +++ b/src/components/Consents/Consents.tsx @@ -153,25 +153,28 @@ const Consents: React.FC = () => { } }, [gridApi, selectedNodes]) - const handleSearchChange = useCallback( - async (newSearch: string) => { - setSearch(newSearch) - if (user) { - const consentPagination = await consentService.searchConsents( - newSearch, - rowsPerPage, - page, - getAxiosXSRFHeader(user.xsrftoken) - ) - if (consentPagination) { - setConsents(consentPagination.rows) - checkSelectedNodes() - setTotalRows(consentPagination.totalRows) - } + const searchConsents = async () => { + if (user) { + const consentPagination = await consentService.searchConsents( + search, + rowsPerPage, + page, + getAxiosXSRFHeader(user.xsrftoken) + ) + if (consentPagination) { + setConsents(consentPagination.rows) + checkSelectedNodes() + setTotalRows(consentPagination.totalRows) + console.log(search) + console.log(consentPagination) } - }, - [user, consentService, rowsPerPage, page, checkSelectedNodes] - ) + } + } + + const handleSearchChange = (newSearch: string) => { + setSearch(newSearch) + setPage(0) + } const resetSelection = useCallback(() => { if (gridApi) { @@ -252,12 +255,12 @@ const Consents: React.FC = () => { } }, [gridApi]) - /** Trigger search when page loads or when admin changes pagination */ + /** Trigger search when page loads or when admin changes input or pagination */ useEffect(() => { - handleSearchChange(search) + searchConsents() // /!\ Do not change dependencies or effect will not trigger when pagination changes // eslint-disable-next-line react-hooks/exhaustive-deps - }, [rowsPerPage, page]) + }, [rowsPerPage, page, search]) return ( <> -- GitLab