chore: prevent route change on canceling confirm dialog (#4493)

This commit is contained in:
Aaryan Khandelwal 2024-05-17 11:36:50 +05:30 committed by GitHub
parent 8fae076fd6
commit c054b18ad5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -16,14 +16,15 @@ const useReloadConfirmations = (isActive = true) => {
); );
const handleRouteChangeStart = useCallback( const handleRouteChangeStart = useCallback(
(url: string) => { (url: string, { shallow }: { shallow: boolean }) => {
if (!isActive || !showAlert) return; if (!isActive || !showAlert) return;
const leave = confirm("Are you sure you want to leave? Changes you made may not be saved."); const leave = confirm("Are you sure you want to leave? Changes you made may not be saved.");
if (!leave) { if (!leave) {
router.events.emit("routeChangeError"); router.events.emit("routeChangeError", new Error("Route change cancelled by user"), url, shallow);
throw "routeChange aborted.";
} }
}, },
[isActive, showAlert, router.events] [isActive, router.events, showAlert]
); );
useEffect(() => { useEffect(() => {