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 healthy = createMemo(() => { const serverHealthy = server.healthy() === true const mcp = Object.values(sync.data.mcp ?? {}) const issue = mcp.some((item) => item.status !== "connected" && item.status !== "disabled") return serverHealthy && !issue }) 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} > } >
) }