fix: show user-friendly error message when duplicate invite is sent (#17827)
Fixes #17822 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
This commit is contained in:
@@ -86,7 +86,11 @@ export const WorkspaceInviteTeam = () => {
|
||||
const submit = handleSubmit(async ({ emails }) => {
|
||||
const emailsList = sanitizeEmailList(emails.split(','));
|
||||
const { data } = await sendInvitation({ emails: emailsList });
|
||||
if (isDefined(data) && data.sendInvitations.result.length > 0) {
|
||||
if (!isDefined(data)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (data.sendInvitations.result.length > 0) {
|
||||
const invitationCount = data.sendInvitations.result.length;
|
||||
enqueueSuccessSnackBar({
|
||||
message: t`${invitationCount} invitations sent`,
|
||||
@@ -94,10 +98,13 @@ export const WorkspaceInviteTeam = () => {
|
||||
duration: 2000,
|
||||
},
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
if (isDefined(data) && !data.sendInvitations.success) {
|
||||
|
||||
if (!data.sendInvitations.success) {
|
||||
enqueueErrorSnackBar({
|
||||
message: data.sendInvitations.errors.join(', '),
|
||||
options: {
|
||||
duration: 5000,
|
||||
},
|
||||
|
||||
+10
-1
@@ -36,6 +36,7 @@ import {
|
||||
} from 'src/engine/core-modules/workspace-invitation/workspace-invitation.exception';
|
||||
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
|
||||
import { WorkspaceMemberWorkspaceEntity } from 'src/modules/workspace-member/standard-objects/workspace-member.workspace-entity';
|
||||
import { CustomException } from 'src/utils/custom-exception';
|
||||
|
||||
@Injectable()
|
||||
export class WorkspaceInvitationService {
|
||||
@@ -357,6 +358,8 @@ export class WorkspaceInvitationService {
|
||||
value: true,
|
||||
});
|
||||
|
||||
const i18n = this.i18nService.getI18nInstance(sender.locale);
|
||||
|
||||
const result = invitationsPr.reduce<{
|
||||
errors: string[];
|
||||
result: ReturnType<
|
||||
@@ -369,7 +372,13 @@ export class WorkspaceInvitationService {
|
||||
}>(
|
||||
(acc, invitation) => {
|
||||
if (invitation.status === 'rejected') {
|
||||
acc.errors.push(invitation.reason?.message ?? 'Unknown error');
|
||||
const reason = invitation.reason;
|
||||
|
||||
if (reason instanceof CustomException && reason.userFriendlyMessage) {
|
||||
acc.errors.push(i18n._(reason.userFriendlyMessage));
|
||||
} else {
|
||||
acc.errors.push(reason?.message ?? 'Unknown error');
|
||||
}
|
||||
} else {
|
||||
acc.result.push(
|
||||
invitation.value.isPersonalInvitation
|
||||
|
||||
Reference in New Issue
Block a user