mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-12 23:56:36 +08:00
@@ -118,7 +118,10 @@ export class TeamWorkspaceResolver {
|
||||
? WorkspaceMemberStatus.NeedMoreSeat
|
||||
: WorkspaceMemberStatus.Pending
|
||||
);
|
||||
if (!needMoreSeat && sendInviteMail) {
|
||||
// NOTE: we always send email even seat not enough
|
||||
// because at this moment we cannot know whether the seat increase charge was successful
|
||||
// after user click the invite link, we can check again and reject if charge failed
|
||||
if (sendInviteMail) {
|
||||
try {
|
||||
await this.workspaceService.sendInviteMail(ret.inviteId, email);
|
||||
ret.sentSuccess = true;
|
||||
@@ -311,14 +314,6 @@ export class TeamWorkspaceResolver {
|
||||
}
|
||||
}
|
||||
|
||||
@OnEvent('workspace.team.seatAvailable')
|
||||
async onSeatAvailable(payload: EventPayload<'workspace.team.seatAvailable'>) {
|
||||
// send invite mail when seat is available for NeedMoreSeat member
|
||||
for (const { inviteId, email } of payload) {
|
||||
await this.workspaceService.sendInviteMail(inviteId, email);
|
||||
}
|
||||
}
|
||||
|
||||
@OnEvent('workspace.team.reviewRequest')
|
||||
async onReviewRequest({
|
||||
inviteIds,
|
||||
|
||||
+18
-17
@@ -215,23 +215,24 @@ const MemberItem = ({
|
||||
};
|
||||
|
||||
const getMemberStatus = (member: Member): I18nString => {
|
||||
if (member.status === WorkspaceMemberStatus.Pending) {
|
||||
return 'Pending';
|
||||
} else if (member.status === WorkspaceMemberStatus.UnderReview) {
|
||||
return 'Under-Review';
|
||||
} else if (member.status === WorkspaceMemberStatus.Accepted) {
|
||||
switch (member.permission) {
|
||||
case Permission.Owner:
|
||||
return 'Workspace Owner';
|
||||
case Permission.Admin:
|
||||
return 'Admin';
|
||||
case Permission.Write:
|
||||
return 'Collaborator';
|
||||
default:
|
||||
return 'Member';
|
||||
}
|
||||
} else {
|
||||
return 'Need-More-Seats';
|
||||
switch (member.status) {
|
||||
case WorkspaceMemberStatus.NeedMoreSeat:
|
||||
case WorkspaceMemberStatus.NeedMoreSeatAndReview:
|
||||
case WorkspaceMemberStatus.Pending:
|
||||
return 'Pending';
|
||||
case WorkspaceMemberStatus.UnderReview:
|
||||
return 'Under-Review';
|
||||
case WorkspaceMemberStatus.Accepted:
|
||||
switch (member.permission) {
|
||||
case Permission.Owner:
|
||||
return 'Workspace Owner';
|
||||
case Permission.Admin:
|
||||
return 'Admin';
|
||||
case Permission.Write:
|
||||
return 'Collaborator';
|
||||
default:
|
||||
return 'Member';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+5
-1
@@ -181,7 +181,11 @@ export const MemberOptions = ({
|
||||
onClick: handleRevoke,
|
||||
show:
|
||||
(isAdmin || isOwner) &&
|
||||
member.status === WorkspaceMemberStatus.Pending,
|
||||
[
|
||||
WorkspaceMemberStatus.NeedMoreSeat,
|
||||
WorkspaceMemberStatus.NeedMoreSeatAndReview,
|
||||
WorkspaceMemberStatus.Pending,
|
||||
].includes(member.status),
|
||||
},
|
||||
{
|
||||
label: t['com.affine.payment.member.team.remove'](),
|
||||
|
||||
Reference in New Issue
Block a user