diff --git a/apps/builder/app/builder/features/project-settings/section-redirects.tsx b/apps/builder/app/builder/features/project-settings/section-redirects.tsx index 350eb113c2..46522eb0b8 100644 --- a/apps/builder/app/builder/features/project-settings/section-redirects.tsx +++ b/apps/builder/app/builder/features/project-settings/section-redirects.tsx @@ -16,7 +16,7 @@ import { } from "@webstudio-is/design-system"; import { ArrowRightIcon, TrashIcon } from "@webstudio-is/icons"; import { - PagePath, + OldPagePath, PageRedirect, ProjectNewRedirectPath, } from "@webstudio-is/sdk"; @@ -58,7 +58,7 @@ export const SectionRedirects = () => { }; const validateOldPath = (oldPath: string): string[] => { - const oldPathValidationResult = PagePath.safeParse(oldPath); + const oldPathValidationResult = OldPagePath.safeParse(oldPath); if (oldPathValidationResult.success === true) { if (oldPath.startsWith("/") === true) { diff --git a/packages/sdk/src/schema/pages.ts b/packages/sdk/src/schema/pages.ts index e1688677b0..bb91c7e87a 100644 --- a/packages/sdk/src/schema/pages.ts +++ b/packages/sdk/src/schema/pages.ts @@ -88,14 +88,10 @@ const HomePage = z.object({ path: HomePagePath, }); -export const PagePath = z +const DefaultPagePage = z .string() .refine((path) => path !== "", "Can't be empty") .refine((path) => path !== "/", "Can't be just a /") - .refine( - (path) => path === "" || path.startsWith("/"), - "Must start with a / or a full URL e.g. https://website.org" - ) .refine((path) => path.endsWith("/") === false, "Can't end with a /") .refine((path) => path.includes("//") === false, "Can't contain repeating /") .refine( @@ -114,6 +110,17 @@ export const PagePath = z "/build prefix is reserved for the system" ); +export const PagePath = DefaultPagePage.refine( + (path) => path === "" || path.startsWith("/"), + "Must start with a / or a full URL e.g. https://website.org" +); + +// added this for old path input under redirect section of page settings +export const OldPagePath = DefaultPagePage.refine( + (path) => path === "" || path.startsWith("/"), + "Must start with a / and it must be full path e.g. /project/id" +); + const Page = z.object({ ...commonPageFields, path: PagePath,