@@ -321,22 +321,25 @@ export function StatusPopoverBody(props: { shown: Accessor<boolean> }) {
321321 { ( name ) => {
322322 const status = ( ) => mcpStatus ( name )
323323 const enabled = ( ) => status ( ) === "connected"
324+ const connecting = ( ) => status ( ) === "connecting"
324325 return (
325326 < button
326327 type = "button"
327328 class = "flex items-center gap-2 w-full min-h-8 pl-3 pr-2 py-1 rounded-md hover:bg-surface-raised-base-hover transition-colors text-left"
328329 onClick = { ( ) => {
330+ if ( connecting ( ) ) return
329331 if ( toggleMcp . isPending ) return
330332 toggleMcp . mutate ( name )
331333 } }
332- disabled = { toggleMcp . isPending && toggleMcp . variables === name }
334+ disabled = { connecting ( ) || ( toggleMcp . isPending && toggleMcp . variables === name ) }
333335 >
334336 < div
335337 classList = { {
336338 "size-1.5 rounded-full shrink-0" : true ,
337339 "bg-icon-success-base" : status ( ) === "connected" ,
338340 "bg-icon-critical-base" : status ( ) === "failed" ,
339341 "bg-border-weak-base" : status ( ) === "disabled" ,
342+ "bg-icon-warning-base animate-pulse" : status ( ) === "connecting" ,
340343 "bg-icon-warning-base" :
341344 status ( ) === "needs_auth" || status ( ) === "needs_client_registration" ,
342345 } }
@@ -354,8 +357,9 @@ export function StatusPopoverBody(props: { shown: Accessor<boolean> }) {
354357 < div onClick = { ( event ) => event . stopPropagation ( ) } >
355358 < Switch
356359 checked = { enabled ( ) }
357- disabled = { toggleMcp . isPending && toggleMcp . variables === name }
360+ disabled = { connecting ( ) || ( toggleMcp . isPending && toggleMcp . variables === name ) }
358361 onChange = { ( ) => {
362+ if ( connecting ( ) ) return
359363 if ( toggleMcp . isPending ) return
360364 toggleMcp . mutate ( name )
361365 } }
0 commit comments