feat(fe2): invite + list workspace invites (#2629)
* list invites table * invites list works * update last reminded date on resend * fix FE * WIP invitedialog + updated debounced utility * invite create works * exclude users correctly * more adjustments * minor cleanup * using workspace invite server role * test fix * fixed multiple root eslint issues * minor adjustments
This commit is contained in:
committed by
GitHub
parent
03db1cca94
commit
4dae1569cd
@@ -1,13 +1,16 @@
|
||||
import { TokenResourceIdentifier } from '@/modules/core/domain/tokens/types'
|
||||
import {
|
||||
PendingWorkspaceCollaboratorsFilter,
|
||||
TokenResourceIdentifierType,
|
||||
WorkspaceInviteCreateInput
|
||||
} from '@/modules/core/graph/generated/graphql'
|
||||
import { mapServerRoleToValue } from '@/modules/core/helpers/graphTypes'
|
||||
import { getWorkspaceRoute } from '@/modules/core/helpers/routeHelper'
|
||||
import { isResourceAllowed } from '@/modules/core/helpers/token'
|
||||
import { LimitedUserRecord } from '@/modules/core/helpers/types'
|
||||
import { removePrivateFields } from '@/modules/core/helpers/userHelper'
|
||||
import { getUser } from '@/modules/core/repositories/users'
|
||||
import { ServerInviteResourceType } from '@/modules/serverinvites/domain/constants'
|
||||
import {
|
||||
FindInvite,
|
||||
QueryAllResourceInvites,
|
||||
@@ -82,7 +85,12 @@ export const createWorkspaceInviteFactory =
|
||||
role:
|
||||
(input.role ? mapGqlWorkspaceRoleToMainRole(input.role) : null) ||
|
||||
Roles.Workspace.Member,
|
||||
primary: true
|
||||
primary: true,
|
||||
secondaryResourceRoles: {
|
||||
...(input.serverRole
|
||||
? { [ServerInviteResourceType]: mapServerRoleToValue(input.serverRole) }
|
||||
: {})
|
||||
}
|
||||
}
|
||||
|
||||
return await deps.createAndSendInvite(
|
||||
@@ -241,7 +249,8 @@ function buildPendingWorkspaceCollaboratorModel(
|
||||
title: resolveInviteTargetTitle(invite, targetUser),
|
||||
role: invite.resource.role || Roles.Workspace.Member,
|
||||
invitedById: invite.inviterId,
|
||||
user: targetUser
|
||||
user: targetUser,
|
||||
updatedAt: invite.updatedAt
|
||||
}
|
||||
}
|
||||
|
||||
@@ -306,8 +315,9 @@ export const getPendingWorkspaceCollaboratorsFactory =
|
||||
}) =>
|
||||
async (params: {
|
||||
workspaceId: string
|
||||
filter?: MaybeNullOrUndefined<PendingWorkspaceCollaboratorsFilter>
|
||||
}): Promise<PendingWorkspaceCollaboratorGraphQLReturn[]> => {
|
||||
const { workspaceId } = params
|
||||
const { workspaceId, filter } = params
|
||||
|
||||
// Get all pending invites
|
||||
const invites = await deps.queryAllResourceInvites<
|
||||
@@ -315,7 +325,8 @@ export const getPendingWorkspaceCollaboratorsFactory =
|
||||
WorkspaceRoles
|
||||
>({
|
||||
resourceId: workspaceId,
|
||||
resourceType: WorkspaceInviteResourceType
|
||||
resourceType: WorkspaceInviteResourceType,
|
||||
search: filter?.search || undefined
|
||||
})
|
||||
|
||||
// Get all target users, if any
|
||||
|
||||
Reference in New Issue
Block a user