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]) => )}
);
}