diff --git a/src/LockNavigationContext/FormikAutoLockNavigation.tsx b/src/LockNavigationContext/FormikAutoLockNavigation.tsx index 01d35cc..37fbd71 100644 --- a/src/LockNavigationContext/FormikAutoLockNavigation.tsx +++ b/src/LockNavigationContext/FormikAutoLockNavigation.tsx @@ -1,27 +1,29 @@ import {FormikContextType} from "formik" import {useContext} from "react" -import {useDeepCompareEffect} from "react-use" +import {useShallowCompareEffect} from "react-use" import deepEqual from "deep-equal" import LockNavigationContext from "./LockNavigationContext" export interface LockNavigationContextProviderProps { formik: FormikContextType + + active?: boolean } export default function FormikAutoLockNavigation({ formik, + active = true, }: LockNavigationContextProviderProps): null { const {lock, release} = useContext(LockNavigationContext) - // TODO: Not working yet - useDeepCompareEffect(() => { - if (!deepEqual(formik.values, formik.initialValues)) { + useShallowCompareEffect(() => { + if (!deepEqual(formik.values, formik.initialValues) && active) { lock() } else { release() } - }, [lock, release, formik.values, formik.initialValues]) + }, [lock, release, formik.values, formik.initialValues, formik.isSubmitting, active]) return null } diff --git a/src/route-widgets/AliasDetailRoute/AliasNotesForm.tsx b/src/route-widgets/AliasDetailRoute/AliasNotesForm.tsx index 9cb8391..ff3f420 100644 --- a/src/route-widgets/AliasDetailRoute/AliasNotesForm.tsx +++ b/src/route-widgets/AliasDetailRoute/AliasNotesForm.tsx @@ -293,7 +293,7 @@ export default function AliasNotesForm({id, notes, onChanged}: AliasNotesFormPro - + ) }