diff --git a/app/controllers/verify_controller.rb b/app/controllers/verify_controller.rb
index 2dd69f93193..b60c4f9968a 100644
--- a/app/controllers/verify_controller.rb
+++ b/app/controllers/verify_controller.rb
@@ -3,5 +3,15 @@ class VerifyController < ApplicationController
check_or_render_not_found -> { IdentityConfig.store.idv_api_enabled }, only: [:show]
- def show; end
+ def show
+ @app_data = app_data
+ end
+
+ private
+
+ def app_data
+ {
+ initial_values: { 'personalKey' => '0000-0000-0000-0000' },
+ }
+ end
end
diff --git a/app/javascript/packages/form-steps/form-steps.spec.tsx b/app/javascript/packages/form-steps/form-steps.spec.tsx
index e285ac112f5..bc3466eed0d 100644
--- a/app/javascript/packages/form-steps/form-steps.spec.tsx
+++ b/app/javascript/packages/form-steps/form-steps.spec.tsx
@@ -218,6 +218,18 @@ describe('FormSteps', () => {
expect(event.returnValue).to.be.true();
});
+ context('promptOnNavigate prop is set to false', () => {
+ it('does not prompt on navigate', () => {
+ render();
+
+ const event = new window.Event('beforeunload', { cancelable: true, bubbles: false });
+ window.dispatchEvent(event);
+
+ expect(event.defaultPrevented).to.be.false();
+ expect(event.returnValue).to.be.true();
+ });
+ });
+
it('pushes step to URL', () => {
const { getByText } = render();
diff --git a/app/javascript/packages/form-steps/form-steps.tsx b/app/javascript/packages/form-steps/form-steps.tsx
index fd85c979560..de5d15b1420 100644
--- a/app/javascript/packages/form-steps/form-steps.tsx
+++ b/app/javascript/packages/form-steps/form-steps.tsx
@@ -125,6 +125,12 @@ interface FormStepsProps {
* Callback triggered on step change.
*/
onStepChange?: () => void;
+
+ /**
+ * Whether to prompt the user about unsaved changes when navigating away from an in-progress form.
+ * Defaults to true.
+ */
+ promptOnNavigate?: boolean;
}
/**
@@ -164,6 +170,7 @@ function FormSteps({
initialValues = {},
initialActiveErrors = [],
autoFocus,
+ promptOnNavigate = true,
}: FormStepsProps) {
const [values, setValues] = useState(initialValues);
const [activeErrors, setActiveErrors] = useState(initialActiveErrors);
@@ -278,7 +285,7 @@ function FormSteps({
return (