import "./SubDebug.css"; import { useState } from "react"; import useRelayState from "Feed/RelayState"; import Tabs, { Tab } from "Element/Tabs"; import { System } from "System"; import { unwrap } from "Util"; import useSystemState from "Hooks/useSystemState"; import { RawReqFilter } from "@snort/nostr"; import { useCopy } from "useCopy"; function RelayInfo({ id }: { id: string }) { const state = useRelayState(id); return
{state?.connected ? <>{id} : {id}}
; } function Queries() { const qs = useSystemState(); const { copy } = useCopy(); function countElements(filters: Array) { let total = 0; for (const f of filters) { for (const v of Object.values(f)) { if (Array.isArray(v)) { total += v.length; } } } return total; } function queryInfo(q: { id: string; filters: Array; closing: boolean; subFilters: Array; }) { return (
{q.closing ? {q.id} : <>{q.id}}
copy(JSON.stringify(q.filters))} className="pointer">   Filters: {q.filters.length} ({countElements(q.filters)} elements)
copy(JSON.stringify(q.subFilters))} className="pointer">   SubQueries: {q.subFilters.length} ({countElements(q.subFilters)} elements)
); } return ( <> Queries {qs?.queries.map(v => queryInfo(v))} ); } const SubDebug = () => { const [onTab, setTab] = useState(0); function connections() { return ( <> Connections: {[...System.Sockets.keys()].map(k => ( ))} ); } const tabs: Tab[] = [ { text: "Connections", value: 0, }, { text: "Queries", value: 1, }, ]; return (
setTab(v.value)} tab={unwrap(tabs.find(a => a.value === onTab))} /> {(() => { switch (onTab) { case 0: return connections(); case 1: return ; default: return null; } })()}
); }; export default SubDebug;