From a2b0fc183f032999225a5d198c365b5d7926ccb8 Mon Sep 17 00:00:00 2001 From: Lykin <137850705+tiny-craft@users.noreply.github.com> Date: Tue, 21 May 2024 15:55:02 +0800 Subject: [PATCH] fix: new key to a non-current database incorrectly refresh the tree view (#259) --- frontend/src/components/dialogs/NewKeyDialog.vue | 13 ++++++++++--- frontend/src/stores/browser.js | 13 +++++++------ 2 files changed, 17 insertions(+), 9 deletions(-) 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 {