diff --git a/frontend/src/app/AppRouter.tsx b/frontend/src/app/AppRouter.tsx index f3ab640ef0..86e7930be4 100644 --- a/frontend/src/app/AppRouter.tsx +++ b/frontend/src/app/AppRouter.tsx @@ -6,7 +6,7 @@ import { ADMINFORM_ROUTE, ADMINFORM_SETTINGS_SUBROUTE, LOGIN_ROUTE, - PUBLIC_FORM_REGEX, + PUBLICFORM_ROUTE, ROOT_ROUTE, } from '~constants/routes' @@ -37,7 +37,7 @@ export const AppRouter = (): JSX.Element => { element={} />} /> } />} /> { + const { formId } = useParams() const { error } = usePublicFormView() - if (error instanceof HttpError && error.code === 404) { + if ( + !formId || + !PUBLICFORM_REGEX.test(formId) || + (error instanceof HttpError && error.code === 404) + ) { return
404
} diff --git a/frontend/src/features/public-form/components/FormStartPage/FormStartPage.stories.tsx b/frontend/src/features/public-form/components/FormStartPage/FormStartPage.stories.tsx index 83caec1c2e..ca961fbd5d 100644 --- a/frontend/src/features/public-form/components/FormStartPage/FormStartPage.stories.tsx +++ b/frontend/src/features/public-form/components/FormStartPage/FormStartPage.stories.tsx @@ -24,7 +24,7 @@ export default { component: FormStartPage, decorators: [ StoryRouter({ - initialEntries: ['/12345'], + initialEntries: ['/61540ece3d4a6e50ac0cc6ff'], path: '/:formId', }), (storyFn) => {storyFn()}, diff --git a/frontend/src/features/public-form/queries.ts b/frontend/src/features/public-form/queries.ts index 2160a2423b..710f374808 100644 --- a/frontend/src/features/public-form/queries.ts +++ b/frontend/src/features/public-form/queries.ts @@ -5,6 +5,8 @@ import { PublicFormViewDto } from '~shared/types/form/form' import { ApiError } from '~typings/core' +import { PUBLICFORM_REGEX } from '~constants/routes' + import { getPublicFormView } from './PublicFormService' const publicFormKeys = { @@ -21,8 +23,12 @@ export const usePublicFormView = (): UseQueryResult< const { formId } = useParams() if (!formId) throw new Error('No formId provided') - return useQuery(publicFormKeys.id(formId), () => - getPublicFormView(formId), + return useQuery( + publicFormKeys.id(formId), + () => getPublicFormView(formId), + { + enabled: PUBLICFORM_REGEX.test(formId), + }, ) }