Integrate time clock directly into invoices, remove standalone page

- Remove "Time Clock" from sidebar navigation
- Redirect /dashboard/time-clock to /dashboard/invoices
- Add InvoiceTimerCard to invoice detail page (shown for non-paid invoices)
- Timer started from an invoice is explicitly linked to that invoice at clock-in
- On clock-out, time is added directly to the linked invoice as a line item
- Active timer widget on dashboard now shows which invoice is being tracked
- Backend: clockIn accepts invoiceId; clockOut prefers explicit invoiceId over
  searching for the latest draft invoice for the client

https://claude.ai/code/session_014126WHVRT8mftmqkU6dajG
This commit is contained in:
Claude
2026-06-11 00:23:50 +00:00
parent 0d8efb0c5f
commit feb8f36ce7
6 changed files with 307 additions and 666 deletions
-2
View File
@@ -8,7 +8,6 @@ import {
BarChart2,
Shield,
RefreshCw,
Clock,
} from "lucide-react";
export interface NavLink {
@@ -32,7 +31,6 @@ export const navigationConfig: NavSection[] = [
{ name: "Invoices", href: "/dashboard/invoices", icon: FileText },
{ name: "Recurring", href: "/dashboard/invoices/recurring", icon: RefreshCw },
{ name: "Expenses", href: "/dashboard/expenses", icon: Receipt },
{ name: "Time Clock", href: "/dashboard/time-clock", icon: Clock },
{ name: "Reports", href: "/dashboard/reports", icon: BarChart2 },
],
},