diff --git a/client/src/pages/settings.tsx b/client/src/pages/settings.tsx index 0acf4b8..5805496 100644 --- a/client/src/pages/settings.tsx +++ b/client/src/pages/settings.tsx @@ -58,12 +58,40 @@ import { Loader2, Moon, Sun, Lock, Laptop } from "lucide-react"; // Customer form schema const customerFormSchema = z.object({ name: z.string().min(1, "Customer name is required"), + description: z.string().optional(), + email: z.string().email("Please enter a valid email").optional().or(z.literal('')), + phone: z.string().optional().or(z.literal('')), + address: z.string().optional().or(z.literal('')), + city: z.string().optional().or(z.literal('')), + state: z.string().optional().or(z.literal('')), + zipCode: z.string().optional().or(z.literal('')), + country: z.string().optional().or(z.literal('')), + website: z.string().url("Please enter a valid URL").optional().or(z.literal('')), + industry: z.string().optional().or(z.literal('')), + notes: z.string().optional().or(z.literal('')), + accountManager: z.string().optional().or(z.literal('')), + billingEmail: z.string().email("Please enter a valid email").optional().or(z.literal('')), + billingAddress: z.string().optional().or(z.literal('')), isActive: z.boolean().default(true), }); // Create customer form schema const createCustomerFormSchema = z.object({ name: z.string().min(1, "Customer name is required"), + description: z.string().optional(), + email: z.string().email("Please enter a valid email").optional().or(z.literal('')), + phone: z.string().optional().or(z.literal('')), + address: z.string().optional().or(z.literal('')), + city: z.string().optional().or(z.literal('')), + state: z.string().optional().or(z.literal('')), + zipCode: z.string().optional().or(z.literal('')), + country: z.string().optional().or(z.literal('')), + website: z.string().url("Please enter a valid URL").optional().or(z.literal('')), + industry: z.string().optional().or(z.literal('')), + notes: z.string().optional().or(z.literal('')), + accountManager: z.string().optional().or(z.literal('')), + billingEmail: z.string().email("Please enter a valid email").optional().or(z.literal('')), + billingAddress: z.string().optional().or(z.literal('')), isActive: z.boolean().default(true), }); @@ -97,6 +125,20 @@ export default function SettingsPage() { resolver: zodResolver(createCustomerFormSchema), defaultValues: { name: "", + description: "", + email: "", + phone: "", + address: "", + city: "", + state: "", + zipCode: "", + country: "", + website: "", + industry: "", + notes: "", + accountManager: "", + billingEmail: "", + billingAddress: "", isActive: true, }, }); @@ -458,9 +500,9 @@ export default function SettingsPage() { -
+ { + onSubmit={createCustomerForm.handleSubmit((data) => { createCustomerMutation.mutate(data); createCustomerForm.reset(); })} @@ -714,9 +756,9 @@ export default function SettingsPage() {