Skip to content

Commit 29c29f0

Browse files
committed
Remove db in list from selected
1 parent b5f8654 commit 29c29f0

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

extensions/ql-vscode/src/databases/config/db-config-store.ts

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import {
77
renameLocalList,
88
renameRemoteList,
99
SelectedDbItem,
10+
SelectedDbItemKind,
1011
} from "./db-config";
12+
import * as lodash from "lodash";
1113
import * as chokidar from "chokidar";
1214
import { DisposableObject, DisposeHandler } from "../../pure/disposable-object";
1315
import { DbConfigValidator } from "./db-config-validator";
@@ -113,6 +115,7 @@ export class DbConfigStore extends DisposableObject {
113115
);
114116
break;
115117
case DbItemKind.LocalDatabase:
118+
// TODO: Remove databases from Disk once implemented
116119
if (dbItem.parentListName) {
117120
const parent = config.databases.local.lists.find(
118121
(list) => list.name === dbItem.parentListName,
@@ -158,14 +161,25 @@ export class DbConfigStore extends DisposableObject {
158161
}
159162

160163
// Remove item from selected
161-
const mappedItem = mapDbItemToSelectedDbItem(dbItem);
162-
if (
163-
selectedItem &&
164-
JSON.stringify(mappedItem) === JSON.stringify(selectedItem)
165-
) {
166-
config.selected = undefined;
164+
const removedItem = mapDbItemToSelectedDbItem(dbItem);
165+
if (selectedItem) {
166+
// if removedItem has a parentList, check if parentList is selectedItem
167+
if (
168+
removedItem &&
169+
(removedItem.kind === SelectedDbItemKind.LocalUserDefinedList ||
170+
removedItem.kind === SelectedDbItemKind.RemoteUserDefinedList)
171+
) {
172+
if (
173+
(selectedItem.kind === SelectedDbItemKind.LocalDatabase ||
174+
selectedItem.kind === SelectedDbItemKind.RemoteRepository) &&
175+
removedItem.listName === selectedItem.listName
176+
) {
177+
config.selected = undefined;
178+
}
179+
} else if (lodash.isEqual(removedItem, selectedItem)) {
180+
config.selected = undefined;
181+
}
167182
}
168-
169183
await this.writeConfig(config);
170184
}
171185

0 commit comments

Comments
 (0)