diff --git a/new-lamassu-admin/src/components/PromptWhenDirty.js b/new-lamassu-admin/src/components/PromptWhenDirty.js index 075bd15c..b7c4835a 100644 --- a/new-lamassu-admin/src/components/PromptWhenDirty.js +++ b/new-lamassu-admin/src/components/PromptWhenDirty.js @@ -1,5 +1,5 @@ import { useFormikContext } from 'formik' -import React from 'react' +import React, { useEffect } from 'react' import { Prompt } from 'react-router-dom' const PROMPT_DEFAULT_MESSAGE = @@ -8,9 +8,21 @@ const PROMPT_DEFAULT_MESSAGE = const PromptWhenDirty = ({ message = PROMPT_DEFAULT_MESSAGE }) => { const formik = useFormikContext() - return ( - - ) + const hasChanges = formik.dirty && formik.submitCount === 0 + + useEffect(() => { + if (hasChanges) { + window.onbeforeunload = confirmExit + } else { + window.onbeforeunload = undefined + } + }, [hasChanges]) + + const confirmExit = () => { + return PROMPT_DEFAULT_MESSAGE + } + + return } export default PromptWhenDirty