import { Button } from "@opencode-ai/ui/button" import { Icon } from "@opencode-ai/ui/icon" import { Popover } from "@opencode-ai/ui/popover" import { Suspense, createMemo, createSignal, lazy, Show } from "solid-js" import { useLanguage } from "@/context/language" import { useServer } from "@/context/server" import { useSync } from "@/context/sync" const Body = lazy(() => import("./status-popover-body").then((x) => ({ default: x.StatusPopoverBody }))) export function StatusPopover() { const language = useLanguage() const server = useServer() const sync = useSync() const [shown, setShown] = createSignal(false) const ready = createMemo(() => server.healthy() === false || sync.data.mcp_ready) const mcpIssue = createMemo(() => { const mcp = Object.values(sync.data.mcp ?? {}) const failed = mcp.some((item) => item.status === "failed" || item.status === "needs_client_registration") const warn = mcp.some((item) => item.status === "needs_auth") if (failed) return "critical" as const if (warn) return "warning" as const }) const healthy = createMemo(() => server.healthy() === true && !mcpIssue()) return (
} class="[&_[data-slot=popover-body]]:p-0 w-[360px] max-w-[calc(100vw-40px)] bg-transparent border-0 shadow-none rounded-xl" gutter={4} placement="bottom-end" shift={-168} > } >
) }