@@ -5,7 +5,7 @@ import { Switch } from "@opencode-ai/ui/switch"
55import { Tabs } from "@opencode-ai/ui/tabs"
66import { useMutation , useQueryClient } from "@tanstack/solid-query"
77import { showToast } from "@opencode-ai/ui/toast"
8- import { useNavigate } from "@solidjs/router"
8+ import { useLocation , useNavigate } from "@solidjs/router"
99import { type Accessor , createEffect , createMemo , For , type JSXElement , onCleanup , Show } from "solid-js"
1010import { createStore , reconcile } from "solid-js/store"
1111import { ServerHealthIndicator , ServerRow } from "@/components/server/server-row"
@@ -156,13 +156,14 @@ const useMcpToggleMutation = () => {
156156 } ) )
157157}
158158
159- export function StatusPopoverBody ( props : { shown : Accessor < boolean > } ) {
159+ export function StatusPopoverBody ( props : { shown : Accessor < boolean > ; close ?: ( ) => void } ) {
160160 const sync = useSync ( )
161161 const server = useServer ( )
162162 const platform = usePlatform ( )
163163 const dialog = useDialog ( )
164164 const language = useLanguage ( )
165165 const navigate = useNavigate ( )
166+ const location = useLocation ( )
166167
167168 const fail = ( err : unknown ) => {
168169 showToast ( {
@@ -251,8 +252,16 @@ export function StatusPopoverBody(props: { shown: Accessor<boolean> }) {
251252 aria-disabled = { blocked ( ) }
252253 onClick = { ( ) => {
253254 if ( blocked ( ) ) return
255+ props . close ?.( )
254256 navigate ( "/" )
255- queueMicrotask ( ( ) => server . setActive ( key ) )
257+ const activate = ( ) => {
258+ if ( location . pathname !== "/" ) {
259+ setTimeout ( activate , 16 )
260+ return
261+ }
262+ setTimeout ( ( ) => server . setActive ( key ) , 0 )
263+ }
264+ setTimeout ( activate , 0 )
256265 } }
257266 >
258267 < ServerHealthIndicator health = { health [ key ] } />
0 commit comments