"use client"; import { RFA } from "@/types/rfa"; import { StatusBadge } from "@/components/common/status-badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { format } from "date-fns"; import { ArrowLeft, CheckCircle, XCircle, Loader2 } from "lucide-react"; import Link from "next/link"; import { Separator } from "@/components/ui/separator"; import { useState } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { rfaApi } from "@/lib/api/rfas"; // Deprecated, remove if possible import { useRouter } from "next/navigation"; import { useProcessRFA } from "@/hooks/use-rfa"; interface RFADetailProps { data: RFA; } export function RFADetail({ data }: RFADetailProps) { const router = useRouter(); const [approvalDialog, setApprovalDialog] = useState<"approve" | "reject" | null>(null); const [comments, setComments] = useState(""); const processMutation = useProcessRFA(); const handleApproval = async (action: "approve" | "reject") => { const apiAction = action === "approve" ? "APPROVE" : "REJECT"; processMutation.mutate( { id: data.rfa_id, data: { action: apiAction, comments: comments, }, }, { onSuccess: () => { setApprovalDialog(null); // Query invalidation handled in hook }, } ); }; return (
{/* Header / Actions */}

{data.rfa_number}

Created on {format(new Date(data.created_at), "dd MMM yyyy HH:mm")}

{data.status === "PENDING" && (
)}
{/* Main Content */}
{data.subject}

Description

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

RFA Items

{data.items.map((item) => ( ))}
Item No. Description Qty Unit Status
{item.item_no} {item.description} {item.quantity} {item.unit}
{/* Sidebar Info */}
Project Information

Contract

{data.contract_name}

Discipline

{data.discipline_name}

{/* Approval Dialog */} !open && setApprovalDialog(null)}> {approvalDialog === "approve" ? "Approve RFA" : "Reject RFA"}