Skip to content

Commit 9db9ef2

Browse files
authored
Disconnect Connection Button (#1858)
Adds an item to disconnect the current connection in the connection typeahead.
1 parent 5418e5a commit 9db9ef2

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

frontend/app/modals/conntypeahead.tsx

+27
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,31 @@ function getS3Suggestions(
233233
return s3Suggestions;
234234
}
235235

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+
236261
function getConnectionsEditItem(
237262
changeConnModalAtom: jotai.PrimitiveAtom<boolean>,
238263
connSelected: string
@@ -420,6 +445,7 @@ const ChangeConnectionBlockModal = React.memo(
420445
filterOutNowsh
421446
);
422447
const connectionsEditItem = getConnectionsEditItem(changeConnModalAtom, connSelected);
448+
const disconnectItem = getDisconnectItem(connection, connStatusMap);
423449
const newConnectionSuggestionItem = getNewConnectionSuggestionItem(
424450
connSelected,
425451
localName,
@@ -435,6 +461,7 @@ const ChangeConnectionBlockModal = React.memo(
435461
...(localSuggestions ? [localSuggestions] : []),
436462
...(remoteSuggestions ? [remoteSuggestions] : []),
437463
...(s3Suggestions ? [s3Suggestions] : []),
464+
...(disconnectItem ? [disconnectItem] : []),
438465
...(connectionsEditItem ? [connectionsEditItem] : []),
439466
...(newConnectionSuggestionItem ? [newConnectionSuggestionItem] : []),
440467
];

0 commit comments

Comments
 (0)