"use client"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import { assignQuoteToLead } from "@/app/admin/leads/actions"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Loader2 } from "lucide-react"; const assignQuoteSchema = z.object({ lead_id: z.string(), quote_token: z.string().optional(), generate_new: z.boolean().default(false), }); export function SendQuoteModal({ leadId }: { leadId: string }) { const [open, setOpen] = useState(false); const [loading, setLoading] = useState(false); const [tab, setTab] = useState<"existing" | "new">("existing"); const form = useForm({ resolver: zodResolver(assignQuoteSchema), defaultValues: { lead_id: leadId, generate_new: false, quote_token: "", }, }); 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, generate_new: false, }); if (result.success) { setOpen(false); form.reset(); } else { console.error("Error assigning quote:", result.error); } } finally { setLoading(false); } } return ( Invia Preventivo al Lead setTab(v as "existing" | "new")}> Preventivo Esistente Crea Nuovo
( Token Preventivo )} />

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

Crea un nuovo preventivo per questo lead. Ti reindirizzeremo al builder.

); }