diff --git a/.planning/phases/14-crm-attio-style-fix/deferred-items.md b/.planning/phases/14-crm-attio-style-fix/deferred-items.md new file mode 100644 index 0000000..a0fbc01 --- /dev/null +++ b/.planning/phases/14-crm-attio-style-fix/deferred-items.md @@ -0,0 +1,9 @@ +# Deferred Items — Phase 14 (crm-attio-style-fix) + +Items discovered during execution that are out of scope for the current task/plan and deferred for future cleanup. + +## From Plan 14-03 + +| File | Lines | Issue | Reason Deferred | +|------|-------|-------|------------------| +| `src/components/admin/leads/SendQuoteModal.tsx` | 39, 48 | `@typescript-eslint/no-explicit-any` on `useForm()` and `onSubmit(data: any)` | Pre-existing (not introduced by CRM-12's dead-branch removal). Attempted fix: typing `useForm()` with `AssignQuoteInput = z.infer` (local schema has `.optional()`/`.default()` on `generate_new`) triggers a cascading `zodResolver`/`Resolver<...>` generic-incompatibility TS error (3 errors, TS2322/TS2345) between `@hookform/resolvers/zod` and `react-hook-form@7.75`'s 3-generic `Resolver` type — same family of issue fixed for `LeadForm.tsx`'s `FormField` in 14-03 Task 2, but here it surfaces in the resolver/schema layer (input vs output type divergence from `.default()`), not the `FormField` component. Resolving it would require either restructuring `assignQuoteSchema`'s optional/default fields or adding resolver-boundary type assertions — out of scope for CRM-12 (isolated dead-code removal). | diff --git a/src/components/admin/leads/SendQuoteModal.tsx b/src/components/admin/leads/SendQuoteModal.tsx index 48f2d6a..f5588f6 100644 --- a/src/components/admin/leads/SendQuoteModal.tsx +++ b/src/components/admin/leads/SendQuoteModal.tsx @@ -48,12 +48,6 @@ export function SendQuoteModal({ leadId }: { leadId: string }) { async function onSubmit(data: any) { setLoading(true); try { - if (tab === "new") { - // Redirect to quote builder pre-filled with this lead - window.location.href = `/admin/quotes/new?lead_id=${leadId}`; - return; - } - const result = await assignQuoteToLead({ lead_id: leadId, quote_token: data.quote_token, @@ -109,7 +103,7 @@ export function SendQuoteModal({ leadId }: { leadId: string }) { />

Copia il token dal preventivo e incollalo qui. Il lead sarà aggiornato a - "Proposal Sent". + "Proposal Sent".