Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-19 16:49:10 +00:00
co-authored by renee-png
parent de26e97e5b
commit 20b3d248c0
+10 -12
View File
@@ -1,18 +1,17 @@
import { useEffect, useState } from "react";
import { Link } from "@tanstack/react-router";
import { Link, useNavigate } from "@tanstack/react-router";
import { Card, CardContent } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge";
import { supabase } from "@/integrations/supabase/client";
import { FilePlus } from "lucide-react";
import { formatCurrency, formatDate, statusBadgeClass } from "@/lib/format";
import { GenerateInvoiceDialog } from "@/components/invoices/generate-invoice-dialog";
export function CaseInvoicesTab({ caseRecord }: { caseRecord: any }) {
const navigate = useNavigate();
const [invoices, setInvoices] = useState<any[]>([]);
const [unbilledTime, setUnbilledTime] = useState<any[]>([]);
const [unbilledExpenses, setUnbilledExpenses] = useState<any[]>([]);
const [genOpen, setGenOpen] = useState(false);
const load = async () => {
const [{ data: invs }, { data: t }, { data: ex }] = await Promise.all([
@@ -42,7 +41,14 @@ export function CaseInvoicesTab({ caseRecord }: { caseRecord: any }) {
</div>
<div className="font-serif text-2xl text-foreground mt-1">{formatCurrency(subtotal)}</div>
</div>
<Button onClick={() => setGenOpen(true)} disabled={subtotal <= 0}>
<Button
onClick={() => navigate({
to: "/invoices/new/$clientId",
params: { clientId: caseRecord.client.id },
search: { caseId: caseRecord.id },
})}
disabled={subtotal <= 0}
>
<FilePlus className="h-4 w-4 mr-2" />
Generate invoice
</Button>
@@ -80,14 +86,6 @@ export function CaseInvoicesTab({ caseRecord }: { caseRecord: any }) {
</table>
</CardContent>
</Card>
<GenerateInvoiceDialog
open={genOpen}
onOpenChange={setGenOpen}
clientId={caseRecord.client.id}
clientName={caseRecord.client.name}
presetCaseId={caseRecord.id}
/>
</div>
);
}