diff --git a/frontend/src/components/dialogs/NewKeyDialog.vue b/frontend/src/components/dialogs/NewKeyDialog.vue index 018de4f..3d723a6 100644 --- a/frontend/src/components/dialogs/NewKeyDialog.vue +++ b/frontend/src/components/dialogs/NewKeyDialog.vue @@ -154,7 +154,11 @@ const onAdd = async () => { value = defaultValue[type] } // await browserStore.reloadKey({server, db, key: trim(key)}) - const { success, msg, nodeKey } = await browserStore.setKey({ + const { + success, + msg, + nodeKey = '', + } = await browserStore.setKey({ server, db, key: trim(key), @@ -165,8 +169,11 @@ const onAdd = async () => { if (success) { // select current key await nextTick() - tabStore.setSelectedKeys(server, nodeKey) - browserStore.reloadKey({ server, db, key }) + const selectedDB = browserStore.getSelectedDB(server) + if (selectedDB === db) { + tabStore.setSelectedKeys(server, nodeKey) + browserStore.reloadKey({ server, db, key }) + } } else if (!isEmpty(msg)) { $message.error(msg) } diff --git a/frontend/src/stores/browser.js b/frontend/src/stores/browser.js index 59afe13..f9dd255 100644 --- a/frontend/src/stores/browser.js +++ b/frontend/src/stores/browser.js @@ -832,7 +832,7 @@ const useBrowserStore = defineStore('browser', { if (success) { /** @type RedisServerState **/ const serverInst = this.servers[server] - if (serverInst != null) { + if (serverInst != null && serverInst.db === db) { // const { value } = data // update tree view data const { newKey = 0 } = serverInst.addKeyNodes([key], true) @@ -840,11 +840,12 @@ const useBrowserStore = defineStore('browser', { serverInst.tidyNode(key) serverInst.updateDBKeyCount(db, newKey) } - } - const { value: updatedValue } = data - if (updatedValue != null) { - const tab = useTabStore() - tab.updateValue({ server, db, key, value: updatedValue }) + + const { value: updatedValue } = data + if (updatedValue != null) { + const tab = useTabStore() + tab.updateValue({ server, db, key, value: updatedValue }) + } } // this.loadKeySummary({ server, db, key }) return {