Settings, deleteAccount: prevent execution of deleteAccount if it is already in progress

This commit is contained in:
gianantoniopini
2021-04-28 09:56:13 +02:00
parent b5d4d54ad3
commit 34627e2acb

View File

@ -18,6 +18,9 @@ const Settings = ({ id }) => {
const [deleteText, setDeleteText] = useState( const [deleteText, setDeleteText] = useState(
t('builder.settings.dangerZone.button'), t('builder.settings.dangerZone.button'),
); );
const [isDeleteAccountInProgress, setDeleteAccountInProgress] = useState(
false,
);
const dispatch = useDispatch(); const dispatch = useDispatch();
const { deleteAccount } = useContext(UserContext); const { deleteAccount } = useContext(UserContext);
@ -41,12 +44,13 @@ const Settings = ({ id }) => {
return; return;
} }
setDeleteText(t('shared.buttons.loading')); setDeleteAccountInProgress(true);
try { try {
await deleteAccount(); await deleteAccount();
} catch (error) { } catch (error) {
toast.error('An error occurred deleting your account.'); toast.error('An error occurred deleting your account.');
setDeleteAccountInProgress(false);
setDeleteText(t('builder.settings.dangerZone.button')); setDeleteText(t('builder.settings.dangerZone.button'));
} }
}; };
@ -101,7 +105,11 @@ const Settings = ({ id }) => {
<p className="leading-loose">{t('builder.settings.dangerZone.text')}</p> <p className="leading-loose">{t('builder.settings.dangerZone.text')}</p>
<div className="mt-4 flex"> <div className="mt-4 flex">
<Button isDelete onClick={handleDeleteAccount}> <Button
isDelete
onClick={handleDeleteAccount}
isLoading={isDeleteAccountInProgress}
>
{deleteText} {deleteText}
</Button> </Button>
</div> </div>