From 37f80d5bd5582b52e016ce8579af52dade491b8d Mon Sep 17 00:00:00 2001 From: seaerchin Date: Mon, 12 Aug 2024 18:01:17 +0800 Subject: [PATCH] chore: split superrefine itno diff schema --- .../FolderSettingsModal.tsx | 4 ++-- apps/studio/src/schemas/folder.ts | 20 ++++++++++--------- 2 files changed, 13 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 1e34324947..3bf41565a6 100644 --- a/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx +++ b/apps/studio/src/features/dashboard/components/FolderSettingsModal/FolderSettingsModal.tsx @@ -23,7 +23,7 @@ import { BiLink } from "react-icons/bi" import { generateResourceUrl } from "~/features/editing-experience/components/utils" import { useZodForm } from "~/lib/form" import { - editFolderSchema, + baseEditFolderSchema, MAX_FOLDER_PERMALINK_LENGTH, MAX_FOLDER_TITLE_LENGTH, } from "~/schemas/folder" @@ -71,7 +71,7 @@ const SuspendableModalContent = ({ title: originalTitle, permalink: originalPermalink, }, - schema: editFolderSchema.omit({ siteId: true, resourceId: true }), + schema: baseEditFolderSchema.omit({ siteId: true, resourceId: true }), }) const { errors, isValid } = formState const utils = trpc.useUtils() diff --git a/apps/studio/src/schemas/folder.ts b/apps/studio/src/schemas/folder.ts index 8ccf9343ec..2a9ea10115 100644 --- a/apps/studio/src/schemas/folder.ts +++ b/apps/studio/src/schemas/folder.ts @@ -27,14 +27,15 @@ export const readFolderSchema = z.object({ resourceId: z.number().min(1), }) -export const editFolderSchema = z - .object({ - resourceId: z.string(), - permalink: z.optional(z.string()), - title: z.optional(z.string()), - siteId: z.string(), - }) - .superRefine(({ permalink, title }, ctx) => { +export const baseEditFolderSchema = z.object({ + resourceId: z.string(), + permalink: z.optional(z.string()), + title: z.optional(z.string()), + siteId: z.string(), +}) + +export const editFolderSchema = baseEditFolderSchema.superRefine( + ({ permalink, title }, ctx) => { if (!permalink && !title) { ctx.addIssue({ code: z.ZodIssueCode.custom, @@ -47,4 +48,5 @@ export const editFolderSchema = z message: "Either permalink or title must be provided.", }) } - }) + }, +)