diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/emails/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/emails/page-client.tsx index 6a47f5e8a..56501dd54 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/emails/page-client.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/emails/page-client.tsx @@ -130,9 +130,9 @@ function SubjectPreview(props: { subject: string, type: EmailTemplateType }) { return subject; } -function definedWhenShared(schema: S, message: string): S { - return schema.when('shared', { - is: 'false', +function definedWhenNotShared(schema: S, message: string): S { + return schema.when('type', { + is: 'standard', then: (schema: S) => schema.defined(message), otherwise: (schema: S) => schema.optional() }); @@ -158,12 +158,12 @@ const getDefaultValues = (emailConfig: AdminEmailConfig | undefined, project: Ad const emailServerSchema = yup.object({ type: yup.string().oneOf(['shared', 'standard']).defined(), - host: definedWhenShared(yup.string(), "Host is required"), - port: definedWhenShared(yup.number(), "Port is required"), - username: definedWhenShared(yup.string(), "Username is required"), - password: definedWhenShared(yup.string(), "Password is required"), - senderEmail: definedWhenShared(strictEmailSchema("Sender email must be a valid email"), "Sender email is required"), - senderName: definedWhenShared(yup.string(), "Email sender name is required"), + host: definedWhenNotShared(yup.string(), "Host is required"), + port: definedWhenNotShared(yup.number(), "Port is required"), + username: definedWhenNotShared(yup.string(), "Username is required"), + password: definedWhenNotShared(yup.string(), "Password is required"), + senderEmail: definedWhenNotShared(strictEmailSchema("Sender email must be a valid email"), "Sender email is required"), + senderName: definedWhenNotShared(yup.string(), "Email sender name is required"), }); function EditEmailServerDialog(props: {