diff --git a/src/renderer/components/Workspace.vue b/src/renderer/components/Workspace.vue index b84bdfae..a5b23c1f 100644 --- a/src/renderer/components/Workspace.vue +++ b/src/renderer/components/Workspace.vue @@ -122,7 +122,13 @@ export default { return this.selectedWorkspace === this.connection.uid; }, selectedTab () { - return this.queryTabs.find(tab => tab.uid === this.workspace.selected_tab) || ['data', 'prop'].includes(this.workspace.selected_tab) ? this.workspace.selected_tab : this.queryTabs[0].uid; + if (this.workspace.breadcrumbs.table === null) + return this.queryTabs[0].uid; + + return this.queryTabs.find(tab => tab.uid === this.workspace.selected_tab) || + ['data', 'prop'].includes(this.workspace.selected_tab) + ? this.workspace.selected_tab + : this.queryTabs[0].uid; }, queryTabs () { return this.workspace.tabs.filter(tab => tab.type === 'query'); diff --git a/src/renderer/store/modules/workspaces.store.js b/src/renderer/store/modules/workspaces.store.js index ba967ab7..28e3a493 100644 --- a/src/renderer/store/modules/workspaces.store.js +++ b/src/renderer/store/modules/workspaces.store.js @@ -3,7 +3,7 @@ import Connection from '@/ipc-api/Connection'; import Database from '@/ipc-api/Database'; import { uidGen } from 'common/libs/uidGen'; const tabIndex = []; -let lastSchema = ''; +let lastBreadcrumb = ''; export default { namespaced: true, @@ -291,12 +291,13 @@ export default { dispatch('newTab', uid); }, changeBreadcrumbs ({ commit, getters }, payload) { - if (lastSchema !== payload.schema) { + if (lastBreadcrumb.schema === payload.schema && lastBreadcrumb.table !== null && payload.table === null) return; + + if (lastBreadcrumb.schema !== payload.schema) Database.useSchema({ uid: getters.getSelected, schema: payload.schema }); - lastSchema = payload.schema; - } commit('CHANGE_BREADCRUMBS', { uid: getters.getSelected, breadcrumbs: payload }); + lastBreadcrumb = { ...payload }; }, newTab ({ commit }, uid) { commit('NEW_TAB', uid);