fixed FormikAutoLockNavigation.tsx

This commit is contained in:
Myzel394 2022-11-01 21:26:37 +01:00
parent 2cb17e5550
commit fd27a8ca74
2 changed files with 8 additions and 6 deletions

View File

@ -1,27 +1,29 @@
import {FormikContextType} from "formik" import {FormikContextType} from "formik"
import {useContext} from "react" import {useContext} from "react"
import {useDeepCompareEffect} from "react-use" import {useShallowCompareEffect} from "react-use"
import deepEqual from "deep-equal" import deepEqual from "deep-equal"
import LockNavigationContext from "./LockNavigationContext" import LockNavigationContext from "./LockNavigationContext"
export interface LockNavigationContextProviderProps { export interface LockNavigationContextProviderProps {
formik: FormikContextType<any> formik: FormikContextType<any>
active?: boolean
} }
export default function FormikAutoLockNavigation({ export default function FormikAutoLockNavigation({
formik, formik,
active = true,
}: LockNavigationContextProviderProps): null { }: LockNavigationContextProviderProps): null {
const {lock, release} = useContext(LockNavigationContext) const {lock, release} = useContext(LockNavigationContext)
// TODO: Not working yet useShallowCompareEffect(() => {
useDeepCompareEffect(() => { if (!deepEqual(formik.values, formik.initialValues) && active) {
if (!deepEqual(formik.values, formik.initialValues)) {
lock() lock()
} else { } else {
release() release()
} }
}, [lock, release, formik.values, formik.initialValues]) }, [lock, release, formik.values, formik.initialValues, formik.isSubmitting, active])
return null return null
} }

View File

@ -293,7 +293,7 @@ export default function AliasNotesForm({id, notes, onChanged}: AliasNotesFormPro
</Grid> </Grid>
</Grid> </Grid>
</form> </form>
<FormikAutoLockNavigation formik={formik} /> <FormikAutoLockNavigation active={isInEditMode} formik={formik} />
</> </>
) )
} }