From 46a6cc984b421dfa128ab468af872ba26aae7857 Mon Sep 17 00:00:00 2001 From: seaerchin Date: Wed, 9 Oct 2024 17:33:40 +0800 Subject: [PATCH 1/5] fix: disable empty titles for folder modal --- apps/studio/src/schemas/folder.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/apps/studio/src/schemas/folder.ts b/apps/studio/src/schemas/folder.ts index ba626ebf9..ba524f97a 100644 --- a/apps/studio/src/schemas/folder.ts +++ b/apps/studio/src/schemas/folder.ts @@ -35,8 +35,8 @@ export const readFolderSchema = z export const baseEditFolderSchema = z.object({ resourceId: z.string(), - permalink: z.optional(permalinkSchema), - title: z.optional(z.string()), + permalink: permalinkSchema, + title: z.string().min(1, { message: "Enter a title for this folder" }), siteId: z.string(), }) @@ -45,12 +45,7 @@ export const editFolderSchema = baseEditFolderSchema.superRefine( if (!permalink && !title) { ctx.addIssue({ code: z.ZodIssueCode.custom, - path: ["siteId"], - message: "Either permalink or title must be provided.", - }) - ctx.addIssue({ - code: z.ZodIssueCode.custom, - path: ["title"], + path: ["permalink", "title"], message: "Either permalink or title must be provided.", }) } From e0aa72c3eaecc86614b55bdce8dda3fde43c1c46 Mon Sep 17 00:00:00 2001 From: seaerchin Date: Wed, 9 Oct 2024 18:28:08 +0800 Subject: [PATCH 2/5] chore: update copy for page settings --- .../studio/src/pages/sites/[siteId]/pages/[pageId]/settings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/studio/src/pages/sites/[siteId]/pages/[pageId]/settings.tsx b/apps/studio/src/pages/sites/[siteId]/pages/[pageId]/settings.tsx index 7f260564d..0c0ff435d 100644 --- a/apps/studio/src/pages/sites/[siteId]/pages/[pageId]/settings.tsx +++ b/apps/studio/src/pages/sites/[siteId]/pages/[pageId]/settings.tsx @@ -213,7 +213,7 @@ const PageSettings = () => { Page title From c4020c1a6e965ac4ba77db8262cfc6022b71c095 Mon Sep 17 00:00:00 2001 From: seaerchin Date: Wed, 9 Oct 2024 18:52:39 +0800 Subject: [PATCH 3/5] fix: update mode for validation --- .../components/FolderSettingsModal/FolderSettingsModal.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx b/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx index d73227f8d..aa0f4b0a9 100644 --- a/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx +++ b/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx @@ -75,6 +75,7 @@ const SuspendableModalContent = ({ resourceId: Number(folderId), }) const { register, handleSubmit, watch, control, formState } = useZodForm({ + mode: "onChange", defaultValues: { title: originalTitle, permalink: originalPermalink, From 1c8eb5e0a06aeffbae25d6f7396c8a442d1ecc9c Mon Sep 17 00:00:00 2001 From: seaerchin Date: Wed, 9 Oct 2024 18:57:48 +0800 Subject: [PATCH 4/5] fix: replace the url field if there is an error we don't wnat to show both the url + the error cos it's redundant (invalid url) --- .../FolderSettingsModal.tsx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx b/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx index aa0f4b0a9..0bd834967 100644 --- a/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx +++ b/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx @@ -166,20 +166,20 @@ const SuspendableModalContent = ({ /> )} /> - {errors.permalink?.message && ( + {errors.permalink?.message ? ( {errors.permalink.message} + ) : ( + + + {permalink} + )} - - - {permalink} - - {MAX_FOLDER_PERMALINK_LENGTH - (permalink || "").length}{" "} characters left From d51402262afd1ee7c411df457ac681f88359cae3 Mon Sep 17 00:00:00 2001 From: seaerchin Date: Wed, 9 Oct 2024 18:59:52 +0800 Subject: [PATCH 5/5] fix: import the correct error message --- .../components/FolderSettingsModal/FolderSettingsModal.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx b/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx index 0bd834967..b06cec4bc 100644 --- a/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx +++ b/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx @@ -2,7 +2,6 @@ import { Suspense } from "react" import { Box, FormControl, - FormErrorMessage, FormHelperText, FormLabel, Icon, @@ -17,7 +16,11 @@ import { Skeleton, VStack, } from "@chakra-ui/react" -import { Button, useToast } from "@opengovsg/design-system-react" +import { + Button, + FormErrorMessage, + useToast, +} from "@opengovsg/design-system-react" import { useAtomValue, useSetAtom } from "jotai" import { Controller } from "react-hook-form" import { BiLink } from "react-icons/bi"