"use client"; import { useState } from "react"; import { format } from "date-fns"; import { tr } from "date-fns/locale"; import { Plus, MoreHorizontal, FileEdit, Trash2, Send, Download, CheckCircle2 } from "lucide-react"; import { Button, Card, CardContent, Badge } from "poyraz-ui/atoms"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "poyraz-ui/molecules"; export type InvoiceRow = { id: string; invoice_number: string; amount: number; currency: string; status: "draft" | "sent" | "paid" | "overdue" | "cancelled"; issue_date: string | null; due_date: string | null; clientName: string | null; projectName: string | null; created_at: string; }; export function InvoicesClient({ invoices }: { invoices: InvoiceRow[] }) { const [isAddModalOpen, setIsAddModalOpen] = useState(false); const formatCurrency = (amount: number, currency: string) => { return new Intl.NumberFormat("tr-TR", { style: "currency", currency }).format(amount); }; const getStatusBadge = (status: string) => { switch (status) { case "draft": return Taslak; case "sent": return Gönderildi; case "paid": return Ödendi; case "overdue": return Gecikmiş; case "cancelled": return İptal; default: return {status}; } }; return (

Faturalar

{invoices.length === 0 ? ( ) : ( invoices.map((invoice) => ( )) )}
Fatura No Müşteri Tutar Durum Düzenlenme Tarihi İşlemler
Henüz hiç fatura bulunmuyor.
{invoice.invoice_number} {invoice.projectName && (
{invoice.projectName}
)}
{invoice.clientName || "-"} {formatCurrency(invoice.amount, invoice.currency)} {getStatusBadge(invoice.status)} {invoice.issue_date ? format(new Date(invoice.issue_date), "dd MMM yyyy", { locale: tr }) : "-"} Düzenle PDF İndir Gönder Ödendi İşaretle Sil
{isAddModalOpen && (

Yeni Fatura Ekle

Bu özellik şu an geliştirme aşamasındadır.

)}
); }