import React, { useState } from 'react'; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { ScrollArea } from '@/components/ui/scroll-area'; import { FileText, Download, Calendar, User, ExternalLink, Tag, Trash2 } from 'lucide-react'; import { format } from 'date-fns'; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "@/components/ui/alert-dialog"; import { supabase } from '@/integrations/supabase/client'; import { useToast } from '@/hooks/use-toast'; import { useAuth } from '@/contexts/AuthContext'; import { Separator } from '@/components/ui/separator'; export function BidQuoteDetailsDialog({ open, onOpenChange, bid, onRefresh }) { const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const { toast } = useToast(); const { isAdmin } = useAuth(); if (!bid) return null; const handleDelete = async () => { try { const { error } = await supabase.from('bids_quotes').delete().eq('id', bid.id); if (error) throw error; toast({ title: 'Deleted', description: 'Bid/Quote deleted successfully.' }); setDeleteDialogOpen(false); onOpenChange(false); if (onRefresh) onRefresh(); } catch (error) { console.error("Delete failed:", error); toast({ variant: 'destructive', title: 'Error', description: error.message || "Failed to delete bid." }); } }; return ( <>
{bid.title || bid.vendor_name}
{format(new Date(bid.created_at), 'MMM d, yyyy')}
{isAdmin && ( )}

Description

{bid.description || "No description provided."}

Details

Vendor: {bid.vendor_name}
Amount: ${bid.amount?.toFixed(2)}
Status: {bid.status}
{bid.received_date &&
Received: {format(new Date(bid.received_date), 'MMM d, yyyy')}
}
Are you absolutely sure? This action cannot be undone. This will permanently delete this bid/quote. Cancel Delete Bid/Quote ); }