From 1caf9a924c6671860853e1494d309463f3fdd2f2 Mon Sep 17 00:00:00 2001 From: Fredrik Strand Oseberg Date: Thu, 19 May 2022 14:27:19 +0200 Subject: [PATCH] fix: user search pagination (#997) --- .../component/admin/users/UsersList/UsersList.tsx | 14 +++++++++++++- frontend/src/hooks/usePagination.ts | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/frontend/src/component/admin/users/UsersList/UsersList.tsx b/frontend/src/component/admin/users/UsersList/UsersList.tsx index 7a38b800f4..acc52b84bf 100644 --- a/frontend/src/component/admin/users/UsersList/UsersList.tsx +++ b/frontend/src/component/admin/users/UsersList/UsersList.tsx @@ -54,8 +54,20 @@ const UsersList = ({ search }: IUsersListProps) => { const ref = useLoading(loading); const { filtered, setFilter } = useUsersFilter(users); const { sorted, sort, setSort } = useUsersSort(filtered); + + const filterUsersByQueryPage = (user: IUser) => { + const fieldsToSearch = [ + user.name ?? '', + user.username ?? user.email ?? '', + ]; + + return fieldsToSearch.some(field => { + return field.toLowerCase().includes(search.toLowerCase()); + }); + }; + // Filter users and reset pagination page when search is triggered const { page, pages, nextPage, prevPage, setPageIndex, pageIndex } = - usePagination(sorted, 50); + usePagination(sorted, 50, filterUsersByQueryPage); useEffect(() => { setFilter(filter => ({ ...filter, query: search })); diff --git a/frontend/src/hooks/usePagination.ts b/frontend/src/hooks/usePagination.ts index c8af5997c2..865246e459 100644 --- a/frontend/src/hooks/usePagination.ts +++ b/frontend/src/hooks/usePagination.ts @@ -20,6 +20,7 @@ const usePagination = ( } const result = paginate(dataToPaginate, limit); + setPageIndex(0); setPaginatedData(result); /* eslint-disable-next-line */ }, [JSON.stringify(data), limit]);