Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-17 02:37:39 +00:00
co-authored by renee-png
parent d59f0378f0
commit 7953a5e9d0
+12 -1
View File
@@ -9,11 +9,12 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { supabase } from "@/integrations/supabase/client";
import { ClientFormDialog } from "@/components/clients/client-form-dialog";
import { useAuth } from "@/lib/auth";
import { ArrowLeft, Edit, Plus, Building2, User, MapPin, Mail, Phone, Users, Activity, Briefcase, FileDown, Contact } from "lucide-react";
import { ArrowLeft, Edit, Plus, Building2, User, MapPin, Mail, Phone, Users, Activity, Briefcase, FileDown, Contact, Receipt } from "lucide-react";
import { ContactsLinkTab } from "@/components/contacts/contacts-link-tab";
import { formatCurrency, formatDate, formatDateTime, statusBadgeClass } from "@/lib/format";
import { toast } from "sonner";
import { downloadStatusReport } from "@/lib/status-pdf";
import { GenerateInvoiceDialog } from "@/components/invoices/generate-invoice-dialog";
export const Route = createFileRoute("/clients/$clientId")({
component: () => (
@@ -32,6 +33,7 @@ function ClientDetail() {
const [statusEntries, setStatusEntries] = useState<any[]>([]);
const [loading, setLoading] = useState(true);
const [editOpen, setEditOpen] = useState(false);
const [invoiceOpen, setInvoiceOpen] = useState(false);
const load = async () => {
setLoading(true);
@@ -125,6 +127,9 @@ function ClientDetail() {
<Edit className="h-4 w-4 mr-2" /> Edit
</Button>
)}
<Button variant="outline" onClick={() => setInvoiceOpen(true)}>
<Receipt className="h-4 w-4 mr-2" /> Generate invoice
</Button>
<Button onClick={() => navigate({ to: "/cases/new", search: { clientId: client.id } })}>
<Plus className="h-4 w-4 mr-2" /> New case
</Button>
@@ -286,6 +291,12 @@ function ClientDetail() {
</div>
<ClientFormDialog open={editOpen} onOpenChange={setEditOpen} client={client} onSaved={load} />
<GenerateInvoiceDialog
open={invoiceOpen}
onOpenChange={setInvoiceOpen}
clientId={client.id}
clientName={client.name}
/>
</PageContainer>
);
}