diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte index 702162dca..2c1de04fc 100644 --- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte +++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte @@ -887,7 +887,7 @@ export let passProps; function handleClick({ forceNewTab = false, tabPreviewMode = false } = {}) { - $selectedDatabaseObjectAppObject = data; + $selectedDatabaseObjectAppObject = _.pick(data, ['conid', 'database', 'objectTypeField', 'pureName', 'schemaName']); handleDatabaseObjectClick(data, { forceNewTab, tabPreviewMode }); } @@ -924,7 +924,7 @@ isChoosed={matchDatabaseObjectAppObject($selectedDatabaseObjectAppObject, data)} on:click={() => handleClick({ tabPreviewMode: true })} on:middleclick={() => handleClick({ forceNewTab: true })} - on:dblclick={() => handleClick({})} + on:dblclick={() => handleClick({ tabPreviewMode: false })} on:expand on:dragstart on:dragenter diff --git a/packages/web/src/utility/changeCurrentDbByTab.ts b/packages/web/src/utility/changeCurrentDbByTab.ts index 864abd206..9e4f73492 100644 --- a/packages/web/src/utility/changeCurrentDbByTab.ts +++ b/packages/web/src/utility/changeCurrentDbByTab.ts @@ -1,5 +1,12 @@ import _ from 'lodash'; -import { currentDatabase, getActiveTab, getCurrentDatabase, getLockedDatabaseMode, openedTabs } from '../stores'; +import { + currentDatabase, + getActiveTab, + getCurrentDatabase, + getLockedDatabaseMode, + openedTabs, + selectedDatabaseObjectAppObject, +} from '../stores'; import { shouldShowTab } from '../tabpanel/TabsPanel.svelte'; import { callWhenAppLoaded, getAppLoaded } from './appLoadManager'; import { getConnectionInfo } from './metadataLoaders'; @@ -31,19 +38,34 @@ import { switchCurrentDatabase } from './common'; // } // }); -export function changeDatabaseByCurrentTab() { +export async function changeDatabaseByCurrentTab() { const currentTab = getActiveTab(); - const { conid, database } = currentTab?.props || {}; + const { conid, database, objectTypeField, pureName, schemaName, defaultActionId } = currentTab?.props || {}; const db = getCurrentDatabase(); if (conid && database && (conid != db?.connection?._id || database != db?.name)) { - const doWork = async () => { - const connection = await getConnectionInfo({ conid }); - switchCurrentDatabase({ - connection, - name: database, - }); - }; - callWhenAppLoaded(doWork); + const connection = await getConnectionInfo({ conid }); + switchCurrentDatabase({ + connection, + name: database, + }); + // const doWork = async () => { + // const connection = await getConnectionInfo({ conid }); + // switchCurrentDatabase({ + // connection, + // name: database, + // }); + // }; + // callWhenAppLoaded(doWork); + } + + if (conid && database && objectTypeField && pureName && defaultActionId) { + selectedDatabaseObjectAppObject.set({ + conid, + database, + objectTypeField, + pureName, + schemaName, + }); } }