Просмотр исходного кода

feat(onboarding): Show error in invite modal (#66483)

We should show the error in the invite member modal when it effects the
entire modal, and is not specific to individual emails.

Split out from: https://github.com/getsentry/sentry/pull/66289

Resolves: https://github.com/getsentry/sentry/issues/65673
Yash Kamothi 1 год назад
Родитель
Сommit
4852e7ce3b

+ 2 - 0
static/app/components/modals/inviteMembersModal/index.tsx

@@ -42,6 +42,7 @@ function InviteMembersModal({
     inviteStatus,
     pendingInvites,
     sendingInvites,
+    error,
   } = useInviteModal({
     initialData,
     organization,
@@ -95,6 +96,7 @@ function InviteMembersModal({
               setRole={setRole}
               setTeams={setTeams}
               willInvite={willInvite}
+              error={error}
             />
           );
         }}

+ 6 - 1
static/app/components/modals/inviteMembersModal/useInviteModal.tsx

@@ -71,6 +71,7 @@ export default function useInviteModal({organization, initialData, source}: Prop
       inviteStatus: {},
       complete: false,
       sendingInvites: false,
+      error: undefined,
     };
   });
 
@@ -90,6 +91,7 @@ export default function useInviteModal({organization, initialData, source}: Prop
       inviteStatus: {},
       complete: false,
       sendingInvites: false,
+      error: undefined,
     });
     trackAnalytics('invite_modal.add_more', {
       organization,
@@ -131,11 +133,13 @@ export default function useInviteModal({organization, initialData, source}: Prop
               ? errorResponse.email[0]
               : errorResponse.email;
 
-        const error = emailError || t('Could not invite user');
+        const orgLevelError = errorResponse?.organization;
+        const error = orgLevelError || emailError || t('Could not invite user');
 
         setState(prev => ({
           ...prev,
           inviteStatus: {...prev.inviteStatus, [invite.email]: {sent: false, error}},
+          error: orgLevelError,
         }));
         return;
       }
@@ -220,5 +224,6 @@ export default function useInviteModal({organization, initialData, source}: Prop
     inviteStatus: state.inviteStatus,
     pendingInvites: state.pendingInvites,
     sendingInvites: state.sendingInvites,
+    error: state.error,
   };
 }