mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-09 05:26:24 +09:00
fix: show proper validation error message when user inputs old path in redirect section (#5082)
## Description fixes: #5050 fixes the validation error message when user enters old path in redirects section.  ## Steps for reproduction 1. go to project settings. 2. redirects tab 3. enter a url like https://website.org in old path input field. 4. the validation error will we shown in the tooltip. ## Code Review - [ ] hi @kof, I need you to do - conceptual review (architecture, feature-correctness) - detailed review (read every line) - test it on preview ## Before requesting a review - [x] made a self-review - [x] added inline comments where things may be not obvious (the "why", not "what") ## Before merging - [x] tested locally and on preview environment (preview dev login: 0000) - [ ] updated [test cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md) document - [ ] added tests - [ ] if any new env variables are added, added them to `.env` file
This commit is contained in:
1 parent
4b65a09375
commit
3944cbb9cd
2 files changed
+14
-7
No files matched your search
@@ -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) {
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user