diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/QueriesReviewPanel.tsx b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/QueriesReviewPanel.tsx new file mode 100644 index 00000000..6cdfb631 --- /dev/null +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/QueriesReviewPanel.tsx @@ -0,0 +1,83 @@ +"use client"; + +import { motion } from "framer-motion"; +import { HelpCircle } from "lucide-react"; +import { Card, CardContent } from "@/app/shadcn_components/ui/card"; +import type { ClassifiedDeal } from "./types"; + +const QUERIES_COLUMNS: (keyof ClassifiedDeal)[] = [ + "dealname", + "landlordPropertyId", + "outcome", + "outcomeNotes", + "coordinationStatus", +]; +const QUERIES_LABELS: Partial> = { + dealname: "Address", + landlordPropertyId: "Ref", + outcome: "Outcome", + outcomeNotes: "Notes", + coordinationStatus: "Coordination Status", +}; + +interface QueriesReviewPanelProps { + deals: ClassifiedDeal[]; + onOpenTable: ( + stage: string, + deals: ClassifiedDeal[], + columns?: (keyof ClassifiedDeal)[], + columnLabels?: Partial>, + breakdown?: Record, + ) => void; +} + +export default function QueriesReviewPanel({ + deals, + onOpenTable, +}: QueriesReviewPanelProps) { + const queriesDeals = deals.filter((d) => d.displayStage === "Queries"); + + if (queriesDeals.length === 0) return null; + + return ( + + +
+ +

+ Queries / Review with Landlord +

+
+

+ Properties still in the programme but parked pending manual review or + landlord input — not counted in the pipeline stages above. +

+ +
+ + onOpenTable( + "Queries / Review with Landlord", + queriesDeals, + QUERIES_COLUMNS, + QUERIES_LABELS, + ) + } + className="group text-left rounded-xl border border-amber-200 bg-gradient-to-br from-amber-50 to-white p-4 hover:border-amber-300 hover:shadow-md transition-all duration-200" + > +

+ Queries / Review +

+

+ {queriesDeals.length} +

+

+ Needs manual review or landlord support before progressing +

+
+
+
+
+ ); +}