|
@@ -22,13 +22,19 @@ const UnsavedAlertDialog = (): JSX.Element => {
|
|
|
}, [isEnabledUnsavedWarning]);
|
|
}, [isEnabledUnsavedWarning]);
|
|
|
|
|
|
|
|
const alertUnsavedWarningByNextRouter = useCallback(() => {
|
|
const alertUnsavedWarningByNextRouter = useCallback(() => {
|
|
|
- // eslint-disable-next-line no-alert
|
|
|
|
|
- const answer = window.confirm(t('page_edit.changes_not_saved'));
|
|
|
|
|
- if (!answer) {
|
|
|
|
|
|
|
+ if (isEnabledUnsavedWarning) {
|
|
|
|
|
+ // eslint-disable-next-line no-alert
|
|
|
|
|
+ const answer = window.confirm(t('page_edit.changes_not_saved'));
|
|
|
|
|
+ if (!answer) {
|
|
|
// eslint-disable-next-line no-throw-literal
|
|
// eslint-disable-next-line no-throw-literal
|
|
|
- throw 'Abort route';
|
|
|
|
|
|
|
+ throw 'Abort route';
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }, [t]);
|
|
|
|
|
|
|
+ }, [isEnabledUnsavedWarning, t]);
|
|
|
|
|
+
|
|
|
|
|
+ const onRouterChangeComplete = useCallback(() => {
|
|
|
|
|
+ mutateIsEnabledUnsavedWarning(false);
|
|
|
|
|
+ }, [mutateIsEnabledUnsavedWarning]);
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
* Route changes by Browser
|
|
* Route changes by Browser
|
|
@@ -54,6 +60,14 @@ const UnsavedAlertDialog = (): JSX.Element => {
|
|
|
}, [alertUnsavedWarningByNextRouter, router.events]);
|
|
}, [alertUnsavedWarningByNextRouter, router.events]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
|
|
+ router.events.on('routeChangeComplete', onRouterChangeComplete);
|
|
|
|
|
+ return () => {
|
|
|
|
|
+ router.events.off('routeChangeComplete', onRouterChangeComplete);
|
|
|
|
|
+ };
|
|
|
|
|
+ }, [onRouterChangeComplete, router.events]);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
return <></>;
|
|
return <></>;
|
|
|
};
|
|
};
|
|
|
|
|
|