feat: unify all invoice popups to shared InvoiceDetailPopup shell

All invoice popup modals (team invoice, sub-invoice team, client invoice,
external sub-invoice) now share InvoiceDetailPopup + SubcontractorInvoiceDetailView.
Same overlay, header, scroll body, footer action row — just different data per role.

- New InvoiceDetailPopup component (overlay shell, header, scrollable body, footer)
- SubcontractorInvoiceDetailView: respects item._inferredType if pre-set
- ClientInvoiceModal: uses shared components, adds sortable headers
- TeamInvoiceDetailPanel embedded: uses shared components, keeps edit-dates/email/company
- TeamInvoices sub-invoice popup: uses shared components, cleans descriptions
- ExternalMyInvoices popup: uses shared components, fixes detailSort vars (was unused)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Krao Hasanee
2026-06-08 13:46:08 -04:00
parent 04e0911e9f
commit 6e4e99c33c
7 changed files with 347 additions and 379 deletions
+5 -1
View File
@@ -10,7 +10,11 @@
"Bash(sed -n '147p' src/pages/Profile.jsx)",
"Bash(awk '{print $5, $9}')",
"Bash(git add *)",
"Bash(git commit -q -m ' *)"
"Bash(git commit -q -m ' *)",
"Bash(git push *)",
"Bash(vercel --prod --yes)",
"Bash(sed -n '1,15p' src/pages/external/ExternalMyInvoices.jsx)",
"Bash(sed -n '1,15p' src/pages/client/ClientMyInvoices.jsx)"
]
}
}