Skip to content

Commit 7b9668e

Browse files
committed
invalidate formdata on subform exit
1 parent bee5871 commit 7b9668e

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/components/form/Form.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import React, { useEffect, useMemo } from 'react';
22
import { useLocation, useNavigate, useSearchParams } from 'react-router-dom';
33

4+
import { useQueryClient } from '@tanstack/react-query';
5+
46
import { Flex } from 'src/app-components/Flex/Flex';
57
import classes from 'src/components/form/Form.module.css';
68
import { MessageBanner } from 'src/components/form/MessageBanner';
@@ -14,6 +16,7 @@ import { FileScanResults } from 'src/features/attachments/types';
1416
import { useExpandedWidthLayouts, useLayoutLookups } from 'src/features/form/layout/LayoutsContext';
1517
import { useUiConfigContext } from 'src/features/form/layout/UiConfigContext';
1618
import { usePageSettings } from 'src/features/form/layoutSettings/LayoutSettingsContext';
19+
import { invalidateFormDataQueries } from 'src/features/formData/useFormDataQuery';
1720
import { useLaxInstanceId } from 'src/features/instance/InstanceContext';
1821
import { useLanguage } from 'src/features/language/useLanguage';
1922
import { useOnFormSubmitValidation } from 'src/features/validation/callbacks/onFormSubmitValidation';
@@ -241,6 +244,7 @@ function HandleNavigationFocusComponent() {
241244
const validate = useQueryKey(SearchParams.Validate)?.toLocaleLowerCase() === 'true';
242245
const navigate = useNavigate();
243246
const searchStringRef = useAsRef(useLocation().search);
247+
const queryClient = useQueryClient();
244248

245249
React.useEffect(() => {
246250
(async () => {
@@ -250,10 +254,13 @@ function HandleNavigationFocusComponent() {
250254
location.delete(SearchParams.ExitSubform);
251255
const baseHash = window.location.hash.slice(1).split('?')[0];
252256
const nextLocation = location.size > 0 ? `${baseHash}?${location.toString()}` : baseHash;
257+
if (exitSubform) {
258+
invalidateFormDataQueries(queryClient);
259+
}
253260
navigate(nextLocation, { replace: true });
254261
}
255262
})();
256-
}, [navigate, searchStringRef, exitSubform, validate, onFormSubmitValidation]);
263+
}, [navigate, searchStringRef, exitSubform, validate, onFormSubmitValidation, queryClient]);
257264

258265
return null;
259266
}

0 commit comments

Comments
 (0)