diff --git a/frontend/src/container/MembersSettings/MembersSettings.tsx b/frontend/src/container/MembersSettings/MembersSettings.tsx index 0ecd8c0c1e..0477ce3082 100644 --- a/frontend/src/container/MembersSettings/MembersSettings.tsx +++ b/frontend/src/container/MembersSettings/MembersSettings.tsx @@ -13,7 +13,7 @@ import MembersTable, { MemberRow } from 'components/MembersTable/MembersTable'; import useUrlQuery from 'hooks/useUrlQuery'; import { useAppContext } from 'providers/App/App'; -import { FilterMode, MemberStatus } from './utils'; +import { FilterMode, MemberStatus, toMemberStatus } from './utils'; import './MembersSettings.styles.scss'; @@ -40,27 +40,15 @@ function MembersSettings(): JSX.Element { const allMembers = useMemo( (): MemberRow[] => - (usersData?.data ?? []).map((user) => { - let status: MemberStatus; - if (user.status === 'pending_invite') { - status = MemberStatus.Invited; - } else if (user.status === 'deleted') { - status = MemberStatus.Deleted; - } else if (user.status === 'active') { - status = MemberStatus.Active; - } else { - status = MemberStatus.Anonymous; - } - return { - id: user.id, - name: user.displayName, - email: user.email, - role: user.role, - status, - joinedOn: user.createdAt ? String(user.createdAt) : null, - updatedAt: user.updatedAt ? String(user.updatedAt) : null, - }; - }), + (usersData?.data ?? []).map((user) => ({ + id: user.id, + name: user.displayName, + email: user.email, + role: user.role, + status: toMemberStatus(user.status ?? ''), + joinedOn: user.createdAt ? String(user.createdAt) : null, + updatedAt: user.updatedAt ? String(user.updatedAt) : null, + })), [usersData], ); diff --git a/frontend/src/container/MembersSettings/utils.ts b/frontend/src/container/MembersSettings/utils.ts index 15bda87024..87d9a06392 100644 --- a/frontend/src/container/MembersSettings/utils.ts +++ b/frontend/src/container/MembersSettings/utils.ts @@ -9,3 +9,22 @@ export enum MemberStatus { Deleted = 'Deleted', Anonymous = 'Anonymous', } + +export enum UserApiStatus { + Active = 'active', + PendingInvite = 'pending_invite', + Deleted = 'deleted', +} + +export function toMemberStatus(apiStatus: string): MemberStatus { + switch (apiStatus) { + case UserApiStatus.PendingInvite: + return MemberStatus.Invited; + case UserApiStatus.Deleted: + return MemberStatus.Deleted; + case UserApiStatus.Active: + return MemberStatus.Active; + default: + return MemberStatus.Anonymous; + } +}