mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-24 13:17:10 +08:00
feat(server): delay subscription after invitation accepted or approved (#11992)
This commit is contained in:
+1
-1
@@ -206,7 +206,7 @@ export const CloudWorkspaceMembersPanel = ({
|
||||
setIsMutating(false);
|
||||
return;
|
||||
}
|
||||
const results = await membersService.inviteMembers(uniqueEmails, true);
|
||||
const results = await membersService.inviteMembers(uniqueEmails);
|
||||
const unSuccessInvites = results.reduce<string[]>((acc, result) => {
|
||||
if (!result.sentSuccess) {
|
||||
acc.push(result.email);
|
||||
|
||||
+3
-1
@@ -256,12 +256,14 @@ const MemberItem = ({
|
||||
const getMemberStatus = (member: Member): I18nString => {
|
||||
switch (member.status) {
|
||||
case WorkspaceMemberStatus.NeedMoreSeat:
|
||||
case WorkspaceMemberStatus.NeedMoreSeatAndReview:
|
||||
return 'insufficient-team-seat';
|
||||
case WorkspaceMemberStatus.Pending:
|
||||
return 'Pending';
|
||||
case WorkspaceMemberStatus.NeedMoreSeatAndReview:
|
||||
case WorkspaceMemberStatus.UnderReview:
|
||||
return 'Under-Review';
|
||||
case WorkspaceMemberStatus.AllocatingSeat:
|
||||
return 'Allocating Seat';
|
||||
case WorkspaceMemberStatus.Accepted:
|
||||
switch (member.permission) {
|
||||
case Permission.Owner:
|
||||
|
||||
@@ -63,8 +63,7 @@ export class InvitationService extends Service {
|
||||
}
|
||||
return await this.acceptInviteStore.acceptInvite(
|
||||
this.inviteInfo$.value.workspace.id,
|
||||
inviteId,
|
||||
true
|
||||
inviteId
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ export class AcceptInviteStore extends Store {
|
||||
async acceptInvite(
|
||||
workspaceId: string,
|
||||
inviteId: string,
|
||||
sendAcceptMail?: boolean,
|
||||
signal?: AbortSignal
|
||||
) {
|
||||
const data = await this.gqlService.gql({
|
||||
@@ -20,7 +19,6 @@ export class AcceptInviteStore extends Store {
|
||||
variables: {
|
||||
workspaceId,
|
||||
inviteId,
|
||||
sendAcceptMail,
|
||||
},
|
||||
context: { signal },
|
||||
});
|
||||
|
||||
@@ -18,19 +18,10 @@ export class WorkspaceMembersService extends Service {
|
||||
|
||||
members = this.framework.createEntity(WorkspaceMembers);
|
||||
|
||||
async inviteMember(email: string, sendInviteMail?: boolean) {
|
||||
return await this.store.inviteMember(
|
||||
this.workspaceService.workspace.id,
|
||||
email,
|
||||
sendInviteMail
|
||||
);
|
||||
}
|
||||
|
||||
async inviteMembers(emails: string[], sendInviteMail?: boolean) {
|
||||
async inviteMembers(emails: string[]) {
|
||||
return await this.store.inviteBatch(
|
||||
this.workspaceService.workspace.id,
|
||||
emails,
|
||||
sendInviteMail
|
||||
emails
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ import {
|
||||
createInviteLinkMutation,
|
||||
getMembersByWorkspaceIdQuery,
|
||||
grantWorkspaceTeamMemberMutation,
|
||||
inviteByEmailMutation,
|
||||
inviteByEmailsMutation,
|
||||
type Permission,
|
||||
revokeInviteLinkMutation,
|
||||
@@ -43,30 +42,7 @@ export class WorkspaceMembersStore extends Store {
|
||||
return data.workspace;
|
||||
}
|
||||
|
||||
async inviteMember(
|
||||
workspaceId: string,
|
||||
email: string,
|
||||
sendInviteMail = false
|
||||
) {
|
||||
if (!this.workspaceServerService.server) {
|
||||
throw new Error('No Server');
|
||||
}
|
||||
const invite = await this.workspaceServerService.server.gql({
|
||||
query: inviteByEmailMutation,
|
||||
variables: {
|
||||
workspaceId,
|
||||
email,
|
||||
sendInviteMail,
|
||||
},
|
||||
});
|
||||
return invite.invite;
|
||||
}
|
||||
|
||||
async inviteBatch(
|
||||
workspaceId: string,
|
||||
emails: string[],
|
||||
sendInviteMail = false
|
||||
) {
|
||||
async inviteBatch(workspaceId: string, emails: string[]) {
|
||||
if (!this.workspaceServerService.server) {
|
||||
throw new Error('No Server');
|
||||
}
|
||||
@@ -75,10 +51,9 @@ export class WorkspaceMembersStore extends Store {
|
||||
variables: {
|
||||
workspaceId,
|
||||
emails,
|
||||
sendInviteMail,
|
||||
},
|
||||
});
|
||||
return inviteBatch.inviteBatch;
|
||||
return inviteBatch.inviteMembers;
|
||||
}
|
||||
|
||||
async generateInviteLink(
|
||||
@@ -128,7 +103,7 @@ export class WorkspaceMembersStore extends Store {
|
||||
},
|
||||
context: { signal },
|
||||
});
|
||||
return revoke.revoke;
|
||||
return revoke.revokeMember;
|
||||
}
|
||||
|
||||
async approveMember(workspaceId: string, userId: string) {
|
||||
|
||||
Reference in New Issue
Block a user