diff --git a/packages/web/src/main.ts b/packages/web/src/main.ts index 9f4a3a235..caee79034 100644 --- a/packages/web/src/main.ts +++ b/packages/web/src/main.ts @@ -1,5 +1,6 @@ import App from './App.svelte'; import './utility/connectionsPinger'; +import './utility/changeCurrentDbByTab'; import './commands/stdCommands'; const app = new App({ diff --git a/packages/web/src/utility/changeCurrentDbByTab.ts b/packages/web/src/utility/changeCurrentDbByTab.ts new file mode 100644 index 000000000..b35c46588 --- /dev/null +++ b/packages/web/src/utility/changeCurrentDbByTab.ts @@ -0,0 +1,25 @@ +import _ from 'lodash'; +import { currentDatabase, openedTabs } from '../stores'; + +let lastCurrentTab = null; + +openedTabs.subscribe(value => { + const newCurrentTab = (value || []).find(x => x.selected); + if (newCurrentTab == lastCurrentTab) return; + + if (newCurrentTab) { + const { conid, database } = newCurrentTab.props || {}; + if ( + conid && + database && + (conid != _.get(lastCurrentTab, 'props.conid') || database != _.get(lastCurrentTab, 'props.database')) + ) { + currentDatabase.set({ + connection: { _id: conid }, + name: database, + }); + } + } + + lastCurrentTab = newCurrentTab; +});