|
7 | 7 | renameLocalList,
|
8 | 8 | renameRemoteList,
|
9 | 9 | SelectedDbItem,
|
| 10 | + SelectedDbItemKind, |
10 | 11 | } from "./db-config";
|
| 12 | +import * as lodash from "lodash"; |
11 | 13 | import * as chokidar from "chokidar";
|
12 | 14 | import { DisposableObject, DisposeHandler } from "../../pure/disposable-object";
|
13 | 15 | import { DbConfigValidator } from "./db-config-validator";
|
@@ -113,6 +115,7 @@ export class DbConfigStore extends DisposableObject {
|
113 | 115 | );
|
114 | 116 | break;
|
115 | 117 | case DbItemKind.LocalDatabase:
|
| 118 | + // TODO: Remove databases from Disk once implemented |
116 | 119 | if (dbItem.parentListName) {
|
117 | 120 | const parent = config.databases.local.lists.find(
|
118 | 121 | (list) => list.name === dbItem.parentListName,
|
@@ -158,14 +161,25 @@ export class DbConfigStore extends DisposableObject {
|
158 | 161 | }
|
159 | 162 |
|
160 | 163 | // 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 | + } |
167 | 182 | }
|
168 |
| - |
169 | 183 | await this.writeConfig(config);
|
170 | 184 | }
|
171 | 185 |
|
|
0 commit comments