diff --git a/src/frontend/apps/desk/src/features/addMembers/components/ModalAddMembers.tsx b/src/frontend/apps/desk/src/features/addMembers/components/ModalAddMembers.tsx index 01c1606..355dfc8 100644 --- a/src/frontend/apps/desk/src/features/addMembers/components/ModalAddMembers.tsx +++ b/src/frontend/apps/desk/src/features/addMembers/components/ModalAddMembers.tsx @@ -57,6 +57,8 @@ export const ModalAddMembers = ({ const { mutateAsync: createInvitation } = useCreateInvitation(); const { mutateAsync: createTeamAccess } = useCreateTeamAccess(); + const [isPending, setIsPending] = useState(false); + const switchActions = (selectedMembers: OptionsSelect) => selectedMembers.map(async (selectedMember) => { switch (selectedMember.type) { @@ -111,11 +113,15 @@ export const ModalAddMembers = ({ }; const handleValidate = async () => { + setIsPending(true); + const settledPromises = await Promise.allSettled< OptionInvitation | OptionNewMember >(switchActions(selectedMembers)); onClose(); + setIsPending(false); + settledPromises.forEach((settledPromise) => { switch (settledPromise.status) { case 'rejected': @@ -133,7 +139,12 @@ export const ModalAddMembers = ({ + } @@ -144,7 +155,7 @@ export const ModalAddMembers = ({ } @@ -71,7 +77,7 @@ export const ModalRole = ({ accessId: access.id, }); }} - disabled={isNotAllowed} + disabled={isNotAllowed || isPending} > {t('Validate')} diff --git a/src/frontend/apps/desk/src/features/teams/components/CardCreateTeam.tsx b/src/frontend/apps/desk/src/features/teams/components/CardCreateTeam.tsx index 9cb0210..b9ae887 100644 --- a/src/frontend/apps/desk/src/features/teams/components/CardCreateTeam.tsx +++ b/src/frontend/apps/desk/src/features/teams/components/CardCreateTeam.tsx @@ -57,7 +57,10 @@ export const CardCreateTeam = () => { -