"use client"; import { useState } from "react"; import { format } from "date-fns"; import { tr } from "date-fns/locale"; import { FileText, Plus, MoreHorizontal, FileEdit, Trash2, Mail, CheckCircle2, XCircle } from "lucide-react"; import { Button, Card, CardContent, Badge } from "poyraz-ui/atoms"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "poyraz-ui/molecules"; export type ProposalRow = { id: string; title: string; amount: number; currency: string; status: "draft" | "sent" | "accepted" | "rejected"; valid_until: string | null; clientName: string | null; projectName: string | null; created_at: string; }; export function ProposalsClient({ proposals }: { proposals: ProposalRow[] }) { 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 "accepted": return Kabul Edildi; case "rejected": return Reddedildi; default: return {status}; } }; return (
{/* Header */}

Teklifler

Müşterilerinize sunduğunuz teklifleri yönetin.

{/* List */}
{proposals.length === 0 ? ( ) : ( proposals.map((proposal) => ( )) )}
Teklif Adı Müşteri Tutar Durum Geçerlilik İşlemler
Henüz hiç teklif bulunmuyor.
{proposal.title} {proposal.projectName && (
{proposal.projectName}
)}
{proposal.clientName || "-"} {formatCurrency(proposal.amount, proposal.currency)} {getStatusBadge(proposal.status)} {proposal.valid_until ? format(new Date(proposal.valid_until), "dd MMM yyyy", { locale: tr }) : "-"} Düzenle Gönder Kabul Edildi Reddedildi Sil
{/* Add Modal Placeholder */} {isAddModalOpen && (

Yeni Teklif Ekle

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

)}
); }