From ffe279bcc96d09aa564256915a8228ca4c369f75 Mon Sep 17 00:00:00 2001 From: Michael Quigley Date: Mon, 27 Jan 2025 16:44:25 -0500 Subject: [PATCH] modal error handling (#837) --- ui100/src/ReleaseAccessModal.tsx | 8 ++++++-- ui100/src/ReleaseEnvironmentModal.tsx | 16 ++++++++++++++-- ui100/src/ReleaseShareModal.tsx | 16 +++++++++++++++- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/ui100/src/ReleaseAccessModal.tsx b/ui100/src/ReleaseAccessModal.tsx index 7ab425ca..1b26f2ab 100644 --- a/ui100/src/ReleaseAccessModal.tsx +++ b/ui100/src/ReleaseAccessModal.tsx @@ -26,6 +26,7 @@ const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAcce useEffect(() => { setChecked(false); + setErrorMessage(null); }, [isOpen]); useEffect(() => { @@ -51,8 +52,11 @@ const ReleaseAccessModal = ({ close, isOpen, user, access, detail }: ReleaseAcce e.response.json().then(ex => { console.log("releaseAccess", ex.message); }); - setErrorMessage(An error occurred releasing your share {detail.token}!); - setTimeout(() => { setErrorMessage(null); }, 2000); + setErrorMessage(An error occurred releasing your access {detail.token}!); + setTimeout(() => { + setErrorMessage(null); + setChecked(false); + }, 2000); }); } } diff --git a/ui100/src/ReleaseEnvironmentModal.tsx b/ui100/src/ReleaseEnvironmentModal.tsx index 544efc02..fb599649 100644 --- a/ui100/src/ReleaseEnvironmentModal.tsx +++ b/ui100/src/ReleaseEnvironmentModal.tsx @@ -15,6 +15,7 @@ interface ReleaseEnvironmentProps { } const ReleaseEnvironmentModal = ({ close, isOpen, user, environment, detail }: ReleaseEnvironmentProps) => { + const [errorMessage, setErrorMessage] = useState(null); const [description, setDescription] = useState(""); const [checked, setChecked] = useState(false); const checkedRef = useRef(); @@ -26,6 +27,7 @@ const ReleaseEnvironmentModal = ({ close, isOpen, user, environment, detail }: R useEffect(() => { setChecked(false); + setErrorMessage(null); }, [isOpen]); useEffect(() => { @@ -36,14 +38,23 @@ const ReleaseEnvironmentModal = ({ close, isOpen, user, environment, detail }: R const releaseEnvironment = () => { if(environment.data && environment.data.envZId) { - getEnvironmentApi(user).disable({body: {identity: environment.data.envZId as string}}) - .then(d => { + getEnvironmentApi(user).disable({ + body: { + identity: environment.data.envZId as string + } + }) + .then(() => { close(); }) .catch(e => { e.response.json().then(ex => { console.log("releaseEnvironment", ex.message); }); + setErrorMessage(An error occurred releasing your environment {environment.id}!); + setTimeout(() => { + setErrorMessage(null); + setChecked(false); + }, 2000); }); } } @@ -63,6 +74,7 @@ const ReleaseEnvironmentModal = ({ close, isOpen, user, environment, detail }: R } label={

I confirm the release of {description}

} sx={{ mt: 2 }} />
+ { errorMessage ? {errorMessage} : null} diff --git a/ui100/src/ReleaseShareModal.tsx b/ui100/src/ReleaseShareModal.tsx index 2e80e0e7..31f772d7 100644 --- a/ui100/src/ReleaseShareModal.tsx +++ b/ui100/src/ReleaseShareModal.tsx @@ -15,6 +15,7 @@ interface ReleaseShareProps { } const ReleaseShareModal = ({ close, isOpen, user, share, detail }: ReleaseShareProps) => { + const [errorMessage, setErrorMessage] = useState(null); const [token, setToken] = useState(""); const [checked, setChecked] = useState(false); const checkedRef = useRef(); @@ -26,6 +27,7 @@ const ReleaseShareModal = ({ close, isOpen, user, share, detail }: ReleaseShareP useEffect(() => { setChecked(false); + setErrorMessage(null); }, [isOpen]); useEffect(() => { @@ -36,7 +38,13 @@ const ReleaseShareModal = ({ close, isOpen, user, share, detail }: ReleaseShareP const releaseShare = () => { if(detail) { - getShareApi(user).unshare({body: {envZId: share.data.envZId as string, shrToken: detail.token, reserved: detail.reserved}}) + getShareApi(user).unshare({ + body: { + envZId: share.data.envZId as string, + shrToken: detail.token, + reserved: detail.reserved + } + }) .then(d => { close(); }) @@ -44,6 +52,11 @@ const ReleaseShareModal = ({ close, isOpen, user, share, detail }: ReleaseShareP e.response.json().then(ex => { console.log("releaseShare", ex.message); }); + setErrorMessage(An error occurred releasing your share {detail.token}!); + setTimeout(() => { + setErrorMessage(null); + setChecked(false); + }, 2000); }); } } @@ -60,6 +73,7 @@ const ReleaseShareModal = ({ close, isOpen, user, share, detail }: ReleaseShareP } label={

I confirm the release of {token}

} sx={{ mt: 2 }} />
+ { errorMessage ? {errorMessage} : null}