From 29d9bc3bdc019e6b9b4c088bd46494c672da3f5f Mon Sep 17 00:00:00 2001 From: Rishabh Date: Tue, 17 Mar 2026 17:26:31 +0530 Subject: [PATCH 1/2] fix: search for invitation in members table --- web/sdk/react/hooks/useOrganizationMembers.ts | 30 ++++++++----------- .../react/views/members/member-columns.tsx | 5 +--- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/web/sdk/react/hooks/useOrganizationMembers.ts b/web/sdk/react/hooks/useOrganizationMembers.ts index 3206b0c5e..1fe298b87 100644 --- a/web/sdk/react/hooks/useOrganizationMembers.ts +++ b/web/sdk/react/hooks/useOrganizationMembers.ts @@ -6,8 +6,7 @@ import { useQuery } from '@connectrpc/connect-query'; import { FrontierServiceQueries, ListOrganizationUsersRequestSchema, ListRolesRequestSchema, ListOrganizationInvitationsRequestSchema } from '@raystack/proton/frontier'; import { create } from '@bufbuild/protobuf'; - -export type MemberWithInvite = User & Invitation & { invited?: boolean }; +export type MemberWithInvite = Partial & Partial & { invited?: boolean }; export interface UseOrganizationMembersReturn { isFetching: boolean; @@ -22,7 +21,6 @@ export const useOrganizationMembers = ({ showInvitations = false }): UseOrganizationMembersReturn => { const [users, setUsers] = useState([]); - const [invitations, setInvitations] = useState([]); const [memberRoles, setMemberRoles] = useState>({}); @@ -73,24 +71,20 @@ export const useOrganizationMembers = ({ { enabled: !!organization?.id && showInvitations } ); - useEffect(() => { - if (invitationsData) { - const invitedUsers: MemberWithInvite[] = (invitationsData.invitations || []).map((user: User) => ({ - ...user, - invited: true - })); - setInvitations(invitedUsers); - } - }, [invitationsData]); - - const isFetching = isUsersLoading || isInvitationsLoading || isRolesLoading; const hasError = usersError || rolesError || invitationsError; - const updatedUsers = useMemo(() => - [...users, ...invitations], - [users, invitations] - ); + const updatedUsers = useMemo(() => { + const invitations = (invitationsData?.invitations || []).map(user => { + return { + ...user, + email: user.userId, + invited: true + } as unknown as MemberWithInvite; + }); + const orgMembers = users as unknown as MemberWithInvite[]; + return [...orgMembers, ...invitations]; + }, [users, invitationsData?.invitations]); const refetch = useCallback(() => { // Trigger refetch of all queries diff --git a/web/sdk/react/views/members/member-columns.tsx b/web/sdk/react/views/members/member-columns.tsx index eb35c413e..c8df5c238 100644 --- a/web/sdk/react/views/members/member-columns.tsx +++ b/web/sdk/react/views/members/member-columns.tsx @@ -62,12 +62,9 @@ export const getColumns = ( { header: 'Title', accessorKey: 'title', - cell: ({ row, getValue }) => { const title = getValue() as string; - const email = row.original.invited - ? row.original.userId - : row.original.email; + const email = row.original.email; return ( From ea3f474e4168afc85c2d167a36d03ada3fe599dc Mon Sep 17 00:00:00 2001 From: Rishabh Date: Tue, 17 Mar 2026 17:31:35 +0530 Subject: [PATCH 2/2] chore: refactor code --- web/sdk/react/hooks/useOrganizationMembers.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/web/sdk/react/hooks/useOrganizationMembers.ts b/web/sdk/react/hooks/useOrganizationMembers.ts index 1fe298b87..fbc36cf81 100644 --- a/web/sdk/react/hooks/useOrganizationMembers.ts +++ b/web/sdk/react/hooks/useOrganizationMembers.ts @@ -80,10 +80,9 @@ export const useOrganizationMembers = ({ ...user, email: user.userId, invited: true - } as unknown as MemberWithInvite; + }; }); - const orgMembers = users as unknown as MemberWithInvite[]; - return [...orgMembers, ...invitations]; + return [...users, ...invitations] as unknown as MemberWithInvite[]; }, [users, invitationsData?.invitations]); const refetch = useCallback(() => {