diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index 6a2c99c6f..d99ccaf2a 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -122,6 +122,7 @@ getOpenedTabs, openedConnections, openedSingleDatabaseConnections, + pinnedDatabases, } from '../stores'; import { filterName, filterNameCompoud } from 'dbgate-tools'; import { showModal } from '../modals/modalTools'; @@ -152,6 +153,8 @@ let engineStatusIcon = null; let engineStatusTitle = null; + $: isPinned = data.singleDatabase && !!$pinnedDatabases.find(x => x?.connection?._id == data?._id); + const electron = getElectron(); const handleConnect = (disableExpand = false) => { @@ -455,6 +458,19 @@ .find(x => x.isNewQuery) .onClick(); }} + onPin={!isPinned && data.singleDatabase + ? () => + pinnedDatabases.update(list => [ + ...list, + { + name: data.defaultDatabase, + connection: data, + }, + ]) + : null} + onUnpin={isPinned && data.singleDatabase + ? () => pinnedDatabases.update(list => list.filter(x => x?.connection?._id != data?._id)) + : null} isChoosed={data._id == $focusedConnectionOrDatabase?.conid && (data.singleDatabase ? $focusedConnectionOrDatabase?.database == data.defaultDatabase