import { useState, useEffect } from 'react'; import { Download, Eye, Loader2 } from 'lucide-react'; import api from '../api/api'; import { downloadInvoiceAsPDF, downloadInvoiceAsJSON } from '../utils/invoiceGenerator'; const InvoiceView = ({ invoiceId, photographer, customer }) => { const [invoice, setInvoice] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { fetchInvoice(); }, [invoiceId]); const fetchInvoice = async () => { try { const res = await api.get(`/invoices/${invoiceId}`); setInvoice(res.data); } catch (err) { console.error('Failed to load invoice:', err); } finally { setLoading(false); } }; if (loading) { return (
{invoice.invoiceNumber}
Issue Date
{new Date(invoice.issueDate).toLocaleDateString()}
Due Date
{new Date(invoice.dueDate).toLocaleDateString()}
From
{photographer?.firstName} {photographer?.lastName}
To
{customer?.firstName} {customer?.lastName}
| Description | Quantity | Unit Price | Total |
|---|---|---|---|
| {item.description} | {item.quantity} | ₹{item.unitPrice.toFixed(2)} | ₹{item.total.toFixed(2)} |