diff --git a/src/app/admin/clients/[id]/actions.ts b/src/app/admin/clients/[id]/actions.ts index a5f66b5..4802d67 100644 --- a/src/app/admin/clients/[id]/actions.ts +++ b/src/app/admin/clients/[id]/actions.ts @@ -50,10 +50,17 @@ async function resolveEntity(id: string): Promise<{ projectId: string | null; pa // ── CLIENT CRUD ─────────────────────────────────────────────────────────────── +const emptyToNull = (v: unknown) => { + const s = typeof v === "string" ? v.trim() : ""; + return s === "" ? null : s; +}; + const clientSchema = z.object({ name: z.string().min(1, "Nome richiesto"), brand_name: z.string().min(1, "Brand name richiesto"), brief: z.string(), + email: z.string().optional().transform(emptyToNull), + phone: z.string().optional().transform(emptyToNull), slug: z .string() .regex(/^[a-z0-9-]{3,50}$/, "Slug non valido (es. mario-rossi, min 3 max 50 caratteri)") @@ -68,6 +75,8 @@ export async function updateClient(clientId: string, formData: FormData) { name: formData.get("name"), brand_name: formData.get("brand_name"), brief: formData.get("brief") ?? "", + email: formData.get("email") ?? "", + phone: formData.get("phone") ?? "", slug: formData.get("slug") ?? "", }); if (!parsed.success) throw new Error(parsed.error.issues[0].message); diff --git a/src/app/admin/clients/[id]/edit/page.tsx b/src/app/admin/clients/[id]/edit/page.tsx index 0cda1bb..357fbc4 100644 --- a/src/app/admin/clients/[id]/edit/page.tsx +++ b/src/app/admin/clients/[id]/edit/page.tsx @@ -62,6 +62,29 @@ export default async function EditClientPage({ /> +
+
+ + +
+
+ + +
+
+