@@ -25,6 +25,7 @@ import {
2525} from 'lucide-react' ;
2626import { Button , SearchField } from '@mcpmux/ui' ;
2727import { ServerActionMenu } from './ServerActionMenu' ;
28+ import { ServerEnabledToggle } from './ServerEnabledToggle' ;
2829import { CloneAccountModal } from './CloneAccountModal' ;
2930import { AddServerMenu } from './AddServerMenu' ;
3031import { ServersFiltersPopover } from './ServersFiltersPopover' ;
@@ -1451,16 +1452,26 @@ export function ServersPage() {
14511452 className = "flex items-center gap-2 flex-shrink-0"
14521453 onClick = { ( event ) => event . stopPropagation ( ) }
14531454 >
1454- { /* Primary action button */ }
1455- { serverAction === 'enable' && (
1456- < button
1457- onClick = { ( ) => handleEnableClick ( server ) }
1458- disabled = { enableLoading }
1459- className = "px-4 py-2 text-sm font-medium rounded-lg bg-[rgb(var(--success))] text-white hover:bg-[rgb(var(--success))]/80 shadow-sm transition-colors disabled:opacity-50"
1460- data-testid = { `enable-server-${ server . id } ` }
1461- >
1462- { enableLoading ? 'Enabling...' : 'Enable' }
1463- </ button >
1455+ { ( serverAction === 'enable' ||
1456+ ( server . enabled &&
1457+ ( serverAction === 'running' ||
1458+ serverAction === 'connected_auto' ||
1459+ serverAction === 'error' ) ) ) && (
1460+ < ServerEnabledToggle
1461+ serverId = { server . id }
1462+ enabled = { server . enabled }
1463+ isLoading = { enableLoading || disableLoading }
1464+ disabled = {
1465+ serverAction === 'connecting' || serverAction === 'authenticating'
1466+ }
1467+ onToggle = { ( checked ) => {
1468+ if ( checked ) {
1469+ handleEnableClick ( server ) ;
1470+ } else {
1471+ handleDisableClick ( server ) ;
1472+ }
1473+ } }
1474+ />
14641475 ) }
14651476
14661477 { serverAction === 'configure' && (
@@ -1536,21 +1547,6 @@ export function ServersPage() {
15361547 </ button >
15371548 ) }
15381549
1539- { /* Disable button - enabled servers that are connected, idle, or stuck in error */ }
1540- { server . enabled &&
1541- ( serverAction === 'running' ||
1542- serverAction === 'connected_auto' ||
1543- serverAction === 'error' ) && (
1544- < button
1545- onClick = { ( ) => handleDisableClick ( server ) }
1546- disabled = { disableLoading }
1547- className = "px-4 py-2 text-sm rounded-lg border border-[rgb(var(--border))] text-[rgb(var(--muted))] hover:bg-[rgb(var(--surface-hover))] transition-colors disabled:opacity-50"
1548- data-testid = { `disable-server-${ server . id } ` }
1549- >
1550- { disableLoading ? '...' : 'Disable' }
1551- </ button >
1552- ) }
1553-
15541550 { /* Overflow menu with secondary actions */ }
15551551 < ServerActionMenu
15561552 serverId = { server . id }
0 commit comments