diff --git a/src/components/sidebar/TreeItem.vue b/src/components/sidebar/TreeItem.vue index 7b8209018..acf7f6b51 100644 --- a/src/components/sidebar/TreeItem.vue +++ b/src/components/sidebar/TreeItem.vue @@ -732,7 +732,7 @@ async function confirmDropTable() { await connectionStore.ensureConnected(node.connectionId); await api.executeQuery(node.connectionId, node.database, buildDropTableSql(), node.schema); toast(t("contextMenu.dropTableSuccess", { name: node.label }), 3000); - await refreshTableList(node); + connectionStore.removeTreeNode(node.id); } catch (e: any) { toast(t("contextMenu.tableOperationFailed", { message: e?.message || String(e) }), 5000); } diff --git a/src/stores/connectionStore.ts b/src/stores/connectionStore.ts index ae38c9420..c96cdde09 100644 --- a/src/stores/connectionStore.ts +++ b/src/stores/connectionStore.ts @@ -251,6 +251,13 @@ export const useConnectionStore = defineStore("connection", () => { loadedTreeNodeChildrenIds.value.add(parent.id); } + function removeTreeNode(nodeId: string) { + const parent = findParentNode(treeNodes.value, nodeId); + if (parent?.children) { + parent.children = parent.children.filter((c) => c.id !== nodeId); + } + } + function buildSavedSqlRootNode(connectionId: string, existingRoot?: TreeNode): TreeNode { const savedSqlStore = useSavedSqlStore(); const existingById = new Map(); @@ -1565,6 +1572,7 @@ export const useConnectionStore = defineStore("connection", () => { activeConnectionId, selectedTreeNodeId, treeNodes, + removeTreeNode, refreshAllTree, refreshSavedSqlTree, refreshTreeNode,