|
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