diff --git a/app/pax8/page.tsx b/app/pax8/page.tsx index e4d202a..506f928 100644 --- a/app/pax8/page.tsx +++ b/app/pax8/page.tsx @@ -9,9 +9,19 @@ import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; import { Skeleton } from '@/components/ui/skeleton'; -import { AlertTriangle, CheckCircle2, Loader2 } from 'lucide-react'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, +} from '@/components/ui/command'; +import { AlertTriangle, Check, CheckCircle2, ChevronsUpDown, Loader2 } from 'lucide-react'; import DataTable, { type Column } from '@/components/admin/DataTable'; import DetailModal from '@/components/admin/DetailModal'; +import { cn } from '@/lib/utils'; interface Pax8CompanyListItem { id: string; @@ -88,6 +98,7 @@ export default function Pax8Page() { const [selectedManualCompany, setSelectedManualCompany] = useState< Record >({}); + const [openPopoverId, setOpenPopoverId] = useState(null); const fetchCompanies = async ( currentPage: number, @@ -398,7 +409,80 @@ export default function Pax8Page() { )} - {/* Manual company-search combobox implemented in Task 3 */} +
+ { + setOpenPopoverId(open ? review.id : null); + if (open) void ensureCompaniesLoaded(); + }} + > + + + + + + + + + {companiesLoading ? 'Loading companies…' : 'No company found.'} + + + {(allCompanies ?? []).map((company) => ( + { + setSelectedManualCompany((prev) => ({ + ...prev, + [review.id]: company, + })); + setOpenPopoverId(null); + }} + > + + {company.company_name} + + ))} + + + + + + +
))}