From 2dd1862b532b3d35fe66e65f15fba048294f9b7d Mon Sep 17 00:00:00 2001 From: vyshnav Date: Mon, 25 Nov 2024 18:00:50 +0530 Subject: [PATCH 1/3] enbaled name field --- src/components/common/registration-form.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/common/registration-form.tsx b/src/components/common/registration-form.tsx index 4601fc4..c3e49dc 100644 --- a/src/components/common/registration-form.tsx +++ b/src/components/common/registration-form.tsx @@ -86,7 +86,7 @@ export default function RegistrationForm() { resolver: zodResolver(baseSchema), defaultValues: { designation: getSjecMemberType(session?.user.email!), - name: session?.user.name!, + name:session?.user.name!, email: session?.user.email!, phone: "", entityName: "", @@ -249,7 +249,7 @@ export default function RegistrationForm() { const handleNext = async () => { let isValid = false; if (step === 1) { - isValid = await form.trigger(["designation", "foodPreference"]); + isValid = await form.trigger(["designation", "foodPreference","name"]); } else if (step === 2) { const designation = form.getValues("designation"); if (designation === "student") { @@ -314,9 +314,9 @@ export default function RegistrationForm() { + From 8dfbd177e811e9af2201f654a21c968307b006c4 Mon Sep 17 00:00:00 2001 From: vyshnav Date: Mon, 25 Nov 2024 18:02:45 +0530 Subject: [PATCH 2/3] fix: Update minimum length validation for USN in studentFormSchema --- src/utils/zod-schemas.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/zod-schemas.ts b/src/utils/zod-schemas.ts index 8147c4e..c7d26f5 100644 --- a/src/utils/zod-schemas.ts +++ b/src/utils/zod-schemas.ts @@ -48,7 +48,7 @@ export const studentFormSchema = z.object({ phone: z .string() .regex(/^\d{10}$/, { message: "Phone number must be 10 digits." }), - usn: z.string().min(1, { message: "USN is required for students." }), + usn: z.string().min(10, { message: "USN is required for students." }), idCard: z.string().min(1, { message: "ID Card is required for students." }), photo: z.string().min(1, { message: "Photo is required." }), }); From 115df60d2979a6cd3ea45f13603762f8719c48eb Mon Sep 17 00:00:00 2001 From: vyshnav Date: Mon, 25 Nov 2024 18:20:29 +0530 Subject: [PATCH 3/3] add regex for usn --- src/utils/zod-schemas.ts | 68 +++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/src/utils/zod-schemas.ts b/src/utils/zod-schemas.ts index c7d26f5..7ea4bbe 100644 --- a/src/utils/zod-schemas.ts +++ b/src/utils/zod-schemas.ts @@ -1,54 +1,52 @@ import { z } from "zod"; export const RegistrationFormSchema = z.object({ - name: z.string().min(1, "Name is required"), - usn: z.string().optional(), - email: z.string().email("Invalid email format"), - contact: z.string().length(10, "Contact must be exactly 10 digits"), - designation: z - .string() - .refine((value) => ["Student", "Faculty", "Employee"].includes(value), { - message: "Invalid designation", + name: z.string().min(1, "Name is required"), + usn: z.string().optional(), + email: z.string().email("Invalid email format"), + contact: z.string().length(10, "Contact must be exactly 10 digits"), + designation: z.string().refine((value) => ["Student", "Faculty", "Employee"].includes(value), { + message: "Invalid designation", }), - photo: z.string().optional(), - collegeIdCard: z.string().optional(), - entityName: z.string().min(1, "Entity name is required"), - referralUsed: z.string().optional(), - createdById: z.string(), + photo: z.string().optional(), + collegeIdCard: z.string().optional(), + entityName: z.string().min(1, "Entity name is required"), + referralUsed: z.string().optional(), + createdById: z.string(), }); export type TRegistrationForm = z.infer; export const emailSchema = z.object({ - email: z.string().email(), - name: z.string().min(1), + email: z.string().email(), + name: z.string().min(1), }); export const baseSchema = z.object({ - designation: z.enum(["student", "faculty", "external"]), - name: z.string().min(2, { message: "Name must be at least 2 characters." }), - email: z.string().email({ message: "Invalid email address." }), - phone: z - .string() - .regex(/^\d{10}$/, { message: "Phone number must be 10 digits." }), - photo: z.string(), - entityName: z.string().optional(), - couponCode: z.string().optional(), - foodPreference: z.enum(["veg", "non-veg"]), + designation: z.enum(["student", "faculty", "external"]), + name: z.string().min(2, { message: "Name must be at least 2 characters." }), + email: z.string().email({ message: "Invalid email address." }), + phone: z.string().regex(/^\d{10}$/, { message: "Phone number must be 10 digits." }), + photo: z.string(), + entityName: z.string().optional(), + couponCode: z.string().optional(), + foodPreference: z.enum(["veg", "non-veg"]), }); export const studentSchema = baseSchema.extend({ - usn: z.string().min(1, { message: "USN is required for students." }), - idCard: z.string().min(1, { message: "ID Card is required for students." }), + usn: z.string().min(1, { message: "USN is required for students." }), + idCard: z.string().min(1, { message: "ID Card is required for students." }), }); export const studentFormSchema = z.object({ - name: z.string().min(2, { message: "Name must be at least 2 characters." }), - email: z.string().email({ message: "Invalid email address." }), - phone: z - .string() - .regex(/^\d{10}$/, { message: "Phone number must be 10 digits." }), - usn: z.string().min(10, { message: "USN is required for students." }), - idCard: z.string().min(1, { message: "ID Card is required for students." }), - photo: z.string().min(1, { message: "Photo is required." }), + name: z.string().min(2, { message: "Name must be at least 2 characters." }), + email: z.string().email({ message: "Invalid email address." }), + phone: z.string().regex(/^\d{10}$/, { message: "Phone number must be 10 digits." }), + usn: z + .string() + .min(10, { message: "USN is required for students." }) + .max(10, { message: "USN must be exactly 10 characters long." }) + .regex(/^[A-Z0-9]+$/, { message: "USN must be in uppercase." }), + idCard: z.string().min(1, { message: "ID Card is required for students." }), + photo: z.string().min(1, { message: "Photo is required." }), });