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