"use client"; import type { Widget } from "@/lib/config/schema"; import { useWidgetSubscription } from "@/lib/ws/client"; type TraefikWidget = Extract; export function TraefikWidget({ widget, widgetId }: { widget: TraefikWidget; widgetId: string }) { const result = useWidgetSubscription(widgetId); const data = result?.type === "traefik" ? result.data : null; const errorMessage = result?.type === "error" ? result.message : null; return (
{widget.name} {data && ( {data.entrypoints.map((ep) => ep.address).join(" ยท ") || `${data.entrypoints.length} entrypoints`} )}
{errorMessage && {errorMessage}} {data && (
{data.routers.map((router) => (
{router.name.replace(/@.*$/, "")} {router.tls && ๐Ÿ”’} {router.status}
))} {data.middlewaresCount} middlewares
)}
); }