import type { DbRecord, Observation } from "@/types"; interface Props { observation: Observation; } function RecordCard({ kind, id, record }: { kind: "user" | "order"; id: string; record: DbRecord }) { const isNotFound = record === "not_found"; const badge = kind === "user" ? "bg-cyan-50 border-cyan-200 text-cyan-700" : "bg-teal-50 border-teal-200 text-teal-700"; return (
{kind} {id}
{isNotFound ? (

not_found

) : (
{Object.entries(record as Record).slice(0, 8).map(([k, v]) => (
{k}: {JSON.stringify(v)}
))} {Object.keys(record as Record).length > 8 && (

… {Object.keys(record as Record).length - 8} more fields

)}
)}
); } export function RetrievedDataPanel({ observation }: Props) { const retrieved = observation.retrieved_data ?? { users: {}, orders: {} }; const users = Object.entries(retrieved.users ?? {}); const orders = Object.entries(retrieved.orders ?? {}); if (users.length === 0 && orders.length === 0) return null; return (
DB Lookups {users.length + orders.length} record{users.length + orders.length === 1 ? "" : "s"}
{users.map(([email, record]) => )} {orders.map(([oid, record]) => )}
); }