Files
speckle-server/packages/frontend-2/lib/workspaces/helpers/roles.ts
T

42 lines
1.3 KiB
TypeScript

import { Roles, type WorkspaceRoles, RoleInfo } from '@speckle/shared'
import { WorkspaceRole } from '~/lib/common/generated/gql/graphql'
export type SelectableWorkspaceRole = WorkspaceRoles | 'delete'
export type SelectableWorkspaceRoleSelectItem = {
id: SelectableWorkspaceRole
title: string
description?: string
}
export const roleSelectItems: Record<
SelectableWorkspaceRole | string,
SelectableWorkspaceRoleSelectItem
> = {
[Roles.Workspace.Admin]: {
id: Roles.Workspace.Admin,
title: RoleInfo.Workspace[Roles.Workspace.Admin].title,
description: RoleInfo.Workspace[Roles.Workspace.Admin].description
},
[Roles.Workspace.Member]: {
id: Roles.Workspace.Member,
title: RoleInfo.Workspace[Roles.Workspace.Member].title,
description: RoleInfo.Workspace[Roles.Workspace.Member].description
},
[Roles.Workspace.Guest]: {
id: Roles.Workspace.Guest,
title: RoleInfo.Workspace[Roles.Workspace.Guest].title,
description: RoleInfo.Workspace[Roles.Workspace.Guest].description
}
}
export const mapMainRoleToGqlWorkspaceRole = (role: WorkspaceRoles): WorkspaceRole => {
switch (role) {
case Roles.Workspace.Admin:
return WorkspaceRole.Admin
case Roles.Workspace.Member:
return WorkspaceRole.Member
case Roles.Workspace.Guest:
return WorkspaceRole.Guest
}
}