import { createSignal, createResource, For, Show, Suspense } from "solid-js"; import { Title } from "@solidjs/meta"; import { Sidebar, TopBar } from "~/components/dashboard"; import { Button, Card, EmptyState, SkeletonCard, SkeletonTable } from "~/components/ui"; import { api } from "~/lib/api"; function BrokerIcon() { return ( ); } type EnhancedStats = { total: number; byStatus: Record; pending: number; completed: number; totalListings: number; listingsRemoved: number; completionRate: number; progress: string; brokerSuccessRates: Array<{ brokerId: string; brokerName: string; status: string; successCount: number; failureCount: number; failureRate24h: number; totalOps24h: number; isAutoDisabled: boolean; }>; systemHealth: { healthy: number; degraded: number; broken: number; disabled: number; total: number; systemHealthPercentage: number; needsAlert: boolean; alertMessage?: string; }; }; export default function RemoveBrokersPage() { const [sidebarOpen, setSidebarOpen] = createSignal(false); const [brokers] = createResource( () => api.removebrokers.getBrokerRegistry.query(), { initialValue: [] }, ); const [removalRequests, { refetch }] = createResource( () => api.removebrokers.getRemovalRequests.query({ page: 1, limit: 20 }), ); const [enhancedStats] = createResource( () => api.removebrokers.getEnhancedStats.query(), ); async function createRequest(brokerId: string) { await api.removebrokers.createRemovalRequest.mutate({ brokerId, personalInfo: { fullName: "" }, }); refetch(); } const stats = () => enhancedStats() as EnhancedStats | undefined; return (
RemoveBrokers — Kordant setSidebarOpen(false)} />
setSidebarOpen(v => !v)} />

RemoveBrokers {stats()?.progress ?? ""}

}>

{stats()?.total ?? 0}

Total Requests

{stats()?.completed ?? 0}

Completed

{stats()?.pending ?? 0}

Pending

{stats()?.systemHealth.systemHealthPercentage ?? 100}%

System Health

{/* Per-broker success rates */} 0}>

Per-Broker Success Rates

{(broker: EnhancedStats["brokerSuccessRates"][number]) => (
{broker.brokerName}
{broker.successCount}s / {broker.failureCount}f {broker.status}
)}

Data Brokers

}> 0} fallback={ } title="No data brokers found" description="Your broker registry is empty. We'll scan for brokers automatically." /> }>
>}> {(broker) => (

{String(broker.name ?? "")}

)}

Removal Requests

}> 0} fallback={ }>
{(req: Record) => (

{String(req.brokerName ?? "")}

Status: {String(req.status ?? "")}

)}
); }