diff --git a/apps/client/src/features/group/components/group-members.tsx b/apps/client/src/features/group/components/group-members.tsx index 3bf04b5ac..b8003e01b 100644 --- a/apps/client/src/features/group/components/group-members.tsx +++ b/apps/client/src/features/group/components/group-members.tsx @@ -12,13 +12,19 @@ import useUserRole from "@/hooks/use-user-role.tsx"; import { useTranslation } from "react-i18next"; import { IUser } from "@/features/user/types/user.types.ts"; import Paginate from "@/components/common/paginate.tsx"; -import { useCursorPaginate } from "@/hooks/use-cursor-paginate"; +import { SearchInput } from "@/components/common/search-input.tsx"; +import NoTableResults from "@/components/common/no-table-results.tsx"; +import { usePaginateAndSearch } from "@/hooks/use-paginate-and-search.tsx"; export default function GroupMembersList() { const { t } = useTranslation(); const { groupId } = useParams(); - const { cursor, goNext, goPrev } = useCursorPaginate(); - const { data, isLoading } = useGroupMembersQuery(groupId, { cursor }); + const { search, cursor, goNext, goPrev, handleSearch } = + usePaginateAndSearch(); + const { data, isLoading } = useGroupMembersQuery(groupId, { + cursor, + query: search, + }); const removeGroupMember = useRemoveGroupMemberMutation(); const { isAdmin } = useUserRole(); @@ -48,6 +54,7 @@ export default function GroupMembersList() { return ( <> + @@ -59,55 +66,62 @@ export default function GroupMembersList() { - {data?.items.map((user: IUser, index: number) => ( - - - - -
- - {user.name} - - - {user.email} - -
-
-
- - {t("Active")} - - - {isAdmin && ( - - - - - - - - openRemoveModal(user.id)}> - {t("Remove group member")} - - - - )} - -
- ))} + {data?.items.length > 0 ? ( + data?.items.map((user: IUser, index: number) => ( + + + + +
+ + {user.name} + + + {user.email} + +
+
+
+ + {t("Active")} + + + {isAdmin && ( + + + + + + + + openRemoveModal(user.id)}> + {t("Remove group member")} + + + + )} + +
+ )) + ) : ( + + )}
diff --git a/apps/server/src/database/repos/group/group-user.repo.ts b/apps/server/src/database/repos/group/group-user.repo.ts index 08184e2c9..76b023f81 100644 --- a/apps/server/src/database/repos/group/group-user.repo.ts +++ b/apps/server/src/database/repos/group/group-user.repo.ts @@ -60,6 +60,10 @@ export class GroupUserRepo { sql`f_unaccent(users.name)`, 'ilike', sql`f_unaccent(${'%' + pagination.query + '%'})`, + ).or( + sql`users.email`, + 'ilike', + sql`f_unaccent(${'%' + pagination.query + '%'})`, ), ); }