import { useState } from "react"; import { ChevronDown, ChevronRight, AlertCircle, Database, } from "lucide-react"; import { ResultsTable } from "@/components/results/ResultsTable"; import type { LookupDatabaseResult } from "@/types"; interface Props { dbResult: LookupDatabaseResult; } export function LookupResultGroup({ dbResult }: Props) { const [expanded, setExpanded] = useState(dbResult.tables.length > 0); const [expandedTables, setExpandedTables] = useState>( () => new Set(dbResult.tables.map((t) => `${t.schema}.${t.table}`)) ); const totalRows = dbResult.tables.reduce((s, t) => s + t.row_count, 0); const hasError = !!dbResult.error; const hasMatches = dbResult.tables.length > 0; const toggleTable = (key: string) => { setExpandedTables((prev) => { const next = new Set(prev); if (next.has(key)) next.delete(key); else next.add(key); return next; }); }; return (
{expanded && hasMatches && (
{dbResult.tables.map((table) => { const key = `${table.schema}.${table.table}`; const isOpen = expandedTables.has(key); return (
{isOpen && table.columns.length > 0 && (
)}
); })}
)}
); }