@@ -233,6 +233,31 @@ function getS3Suggestions(
233
233
return s3Suggestions ;
234
234
}
235
235
236
+ function getDisconnectItem (
237
+ connection : string ,
238
+ connStatusMap : Map < string , ConnStatus >
239
+ ) : SuggestionConnectionItem | null {
240
+ if ( ! connection ) {
241
+ return null ;
242
+ }
243
+ const connStatus = connStatusMap . get ( connection ) ;
244
+ if ( ! connStatus || connStatus . status != "connected" ) {
245
+ return null ;
246
+ }
247
+ const disconnectSuggestionItem : SuggestionConnectionItem = {
248
+ status : "connected" ,
249
+ icon : "xmark" ,
250
+ iconColor : "var(--grey-text-color)" ,
251
+ label : `Disconnect ${ connStatus . connection } ` ,
252
+ value : "" ,
253
+ onSelect : async ( _ : string ) => {
254
+ const prtn = RpcApi . ConnDisconnectCommand ( TabRpcClient , connection , { timeout : 60000 } ) ;
255
+ prtn . catch ( ( e ) => console . log ( "error disconnecting" , connStatus . connection , e ) ) ;
256
+ } ,
257
+ } ;
258
+ return disconnectSuggestionItem ;
259
+ }
260
+
236
261
function getConnectionsEditItem (
237
262
changeConnModalAtom : jotai . PrimitiveAtom < boolean > ,
238
263
connSelected : string
@@ -420,6 +445,7 @@ const ChangeConnectionBlockModal = React.memo(
420
445
filterOutNowsh
421
446
) ;
422
447
const connectionsEditItem = getConnectionsEditItem ( changeConnModalAtom , connSelected ) ;
448
+ const disconnectItem = getDisconnectItem ( connection , connStatusMap ) ;
423
449
const newConnectionSuggestionItem = getNewConnectionSuggestionItem (
424
450
connSelected ,
425
451
localName ,
@@ -435,6 +461,7 @@ const ChangeConnectionBlockModal = React.memo(
435
461
...( localSuggestions ? [ localSuggestions ] : [ ] ) ,
436
462
...( remoteSuggestions ? [ remoteSuggestions ] : [ ] ) ,
437
463
...( s3Suggestions ? [ s3Suggestions ] : [ ] ) ,
464
+ ...( disconnectItem ? [ disconnectItem ] : [ ] ) ,
438
465
...( connectionsEditItem ? [ connectionsEditItem ] : [ ] ) ,
439
466
...( newConnectionSuggestionItem ? [ newConnectionSuggestionItem ] : [ ] ) ,
440
467
] ;
0 commit comments