import React from "react"; import { Box, Text } from "ink"; import { HeaderSwr } from "../../tui-components/HeaderSwr.jsx"; import { DataTable } from "../../tui-components/DataTable.jsx"; import { StatusBadge } from "../../tui-components/StatusBadge.jsx"; const SCHEMA = [ { key: "name", header: "Provider", width: 16 }, { key: "status", header: "Status", width: 12, formatter: (v) => v }, { key: "accounts", header: "Accounts", width: 10 }, { key: "models", header: "Models", width: 8 }, ]; export default function Providers({ baseUrl, apiKey }) { const fetcher = React.useCallback(async () => { const res = await fetch(`${baseUrl}/api/providers`, { headers: apiKey ? { Authorization: `Bearer ${apiKey}` } : {}, }); return res.ok ? res.json() : []; }, [baseUrl, apiKey]); return ( { const rows = Array.isArray(data) ? data : (data?.providers ?? []); return ( ({ name: p.name ?? p.id, status: p.status ?? "unknown", accounts: p.accountCount ?? 0, models: p.modelCount ?? 0, }))} schema={SCHEMA} selectable /> ); }} /> [↑↓] select [Enter] details [t] test [r] refresh ); }