import { Button } from "@opencode-ai/ui/button" import { DropdownMenu } from "@opencode-ai/ui/dropdown-menu" import { Icon } from "@opencode-ai/ui/icon" import { QueryClientProvider } from "@tanstack/solid-query" import { createMemo, For, type ParentProps, Show } from "solid-js" import { ServerHealthIndicator, ServerRow } from "@/components/server/server-row" import { ModelsProvider } from "@/context/models" import { ServerConnection } from "@/context/server" import { ServerSDKProvider } from "@/context/server-sdk" import { ServerSyncProvider } from "@/context/server-sync" import { useGlobal } from "@/context/global" import { useSettings } from "@/context/settings" export function SettingsServerScope(props: ParentProps) { const global = useGlobal() const settings = useSettings() return ( {(server) => {props.children}} ) } function SettingsServerDataProviders(props: ParentProps<{ server: ServerConnection.Any }>) { const global = useGlobal() const serverCtx = () => global.ensureServerCtx(props.server) return ( props.server}> {props.children} ) } export function SettingsServerPicker() { const global = useGlobal() const settings = useSettings() const selected = createMemo(() => settings.general.newLayoutDesigns() ? global.settings.server.selected() : undefined, ) return ( {(conn) => ( { if (typeof key === "string") global.settings.server.set(ServerConnection.Key.make(key)) }} > {(item) => { const key = ServerConnection.key(item) const blocked = () => global.servers.health[key]?.healthy === false return ( ) }} )} ) }