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),
+ },
)
}