From 1482d9a9af35da480584db9626e6fefc1f3e51bd Mon Sep 17 00:00:00 2001 From: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Date: Mon, 11 Mar 2024 20:46:32 +0530 Subject: [PATCH] fix: duplicate dialog (#14055) --- .../features/eventtypes/components/DuplicateDialog.tsx | 5 ++++- packages/prisma/zod/custom/eventtype.ts | 8 ++++++++ .../server/routers/viewer/eventTypes/duplicate.schema.ts | 4 ++-- packages/trpc/server/routers/viewer/eventTypes/types.ts | 8 -------- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/features/eventtypes/components/DuplicateDialog.tsx b/packages/features/eventtypes/components/DuplicateDialog.tsx index 8fdbe5b071..2ad43f5969 100644 --- a/packages/features/eventtypes/components/DuplicateDialog.tsx +++ b/packages/features/eventtypes/components/DuplicateDialog.tsx @@ -1,3 +1,4 @@ +import { zodResolver } from "@hookform/resolvers/zod"; import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; @@ -10,6 +11,7 @@ import { HttpError } from "@calcom/lib/http-error"; import { md } from "@calcom/lib/markdownIt"; import slugify from "@calcom/lib/slugify"; import turndown from "@calcom/lib/turndownService"; +import { EventTypeDuplicateInput } from "@calcom/prisma/zod/custom/eventtype"; import { trpc } from "@calcom/trpc/react"; import { Button, @@ -24,7 +26,7 @@ import { } from "@calcom/ui"; const querySchema = z.object({ - title: z.string(), + title: z.string().min(1), description: z.string().default(""), slug: z.string(), id: z.coerce.number(), @@ -47,6 +49,7 @@ const DuplicateDialog = () => { slug: t("event_type_duplicate_copy_text", { slug }), ...defaultValues, }, + resolver: zodResolver(EventTypeDuplicateInput), }); const { register } = form; diff --git a/packages/prisma/zod/custom/eventtype.ts b/packages/prisma/zod/custom/eventtype.ts index b278fe1607..51e5c6fd06 100755 --- a/packages/prisma/zod/custom/eventtype.ts +++ b/packages/prisma/zod/custom/eventtype.ts @@ -20,3 +20,11 @@ export const createEventTypeInput = z.object({ path: ["schedulingType"], message: "You must select a scheduling type for team events", }); + + export const EventTypeDuplicateInput = z.object({ + id: z.number(), + slug: z.string(), + title: z.string().min(1), + description: z.string(), + length: z.number(), + }).strict(); diff --git a/packages/trpc/server/routers/viewer/eventTypes/duplicate.schema.ts b/packages/trpc/server/routers/viewer/eventTypes/duplicate.schema.ts index 6b6944f1e6..b9217aaf4c 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/duplicate.schema.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/duplicate.schema.ts @@ -1,7 +1,7 @@ import type { z } from "zod"; -import { EventTypeDuplicateInput } from "./types"; +import { EventTypeDuplicateInput } from "@calcom/prisma/zod/custom/eventtype"; -export const ZDuplicateInputSchema = EventTypeDuplicateInput.strict(); +export const ZDuplicateInputSchema = EventTypeDuplicateInput; export type TDuplicateInputSchema = z.infer; diff --git a/packages/trpc/server/routers/viewer/eventTypes/types.ts b/packages/trpc/server/routers/viewer/eventTypes/types.ts index 4ef28e5af6..54d3f2c685 100644 --- a/packages/trpc/server/routers/viewer/eventTypes/types.ts +++ b/packages/trpc/server/routers/viewer/eventTypes/types.ts @@ -55,11 +55,3 @@ export const EventTypeUpdateInput = _EventTypeModel id: true, }) ); - -export const EventTypeDuplicateInput = z.object({ - id: z.number(), - slug: z.string(), - title: z.string(), - description: z.string(), - length: z.number(), -});