diff --git a/src/components/InvoiceDetailPopup.jsx b/src/components/InvoiceDetailPopup.jsx index 79a873d..5506569 100644 --- a/src/components/InvoiceDetailPopup.jsx +++ b/src/components/InvoiceDetailPopup.jsx @@ -1,12 +1,25 @@ import { popupOverlayStyle, popupSurfaceStyle } from '../lib/popupStyles'; import PageLoader from './PageLoader'; +export const POPUP_FIELD_LABEL = { + fontSize: 11, + fontWeight: 500, + color: 'var(--text-secondary)', + textTransform: 'uppercase', + letterSpacing: 0.8, + display: 'block', + marginBottom: 4, +}; + export default function InvoiceDetailPopup({ title, subtitle, headerRight, onClose, blockClose = false, + metaContent, // JSX fields rendered in flat meta grid (no cards) + metaActions, // optional JSX rendered right-aligned beside meta grid (e.g. Edit Dates) + metaCols = 4, // number of grid columns for meta strip footerActions, loading = false, children, @@ -17,7 +30,8 @@ export default function InvoiceDetailPopup({ style={{ ...popupSurfaceStyle, background: 'var(--card-bg)', width: '80vw', height: '80vh', display: 'flex', flexDirection: 'column', gap: 0 }} onClick={e => e.stopPropagation()} > -
| + {itemType.label} + | +{item.description} | +{item.quantity} | +{fmt(item.unit_price)} | ++ {fmt(Number(item.unit_price || 0) * Number(item.quantity || 1))} + | +
{invoice.invoice_date ? new Date(invoice.invoice_date).toLocaleDateString() : '—'}
{invoice.due_date ? new Date(invoice.due_date).toLocaleDateString() : '—'}
Net 30
${total.toFixed(2)}
{new Date(invoice.paid_at).toLocaleDateString()}
{inv.invoice_number || '—'}
{invoiceStatus}
{inv.created_at ? new Date(inv.created_at).toLocaleDateString() : '—'}
{inv.submitted_at ? new Date(inv.submitted_at).toLocaleDateString() : '—'}
{baseItems.length}
${total.toFixed(2)}
{new Date(invoice.invoice_date).toLocaleDateString()}
} -{new Date(invoice.due_date).toLocaleDateString()}
} -Net 30
${Number(invoice.total).toFixed(2)}
{new Date(invoice.paid_at).toLocaleDateString()}
−${Number(invoice.stripe_fee).toFixed(2)}
${(Number(invoice.total) - Number(invoice.stripe_fee)).toFixed(2)}
{invoice.invoice_number || '—'}
{invoiceStatus}
{invoice.submitted_at ? new Date(invoice.submitted_at).toLocaleDateString() : '—'}
{new Date(invoice.paid_at).toLocaleDateString()}
{baseItems.length}
${total.toFixed(2)}