diff --git a/packages/web/src/stores.ts b/packages/web/src/stores.ts index e9c93fa30..ed90ac92b 100644 --- a/packages/web/src/stores.ts +++ b/packages/web/src/stores.ts @@ -93,6 +93,11 @@ export const commandsCustomized = derived([commands, commandsSettings], ([$comma })) ); +export const draggingTab = writable(null); +export const draggingTabTarget = writable(null); +export const draggingDbGroup = writable(null); +export const draggingDbGroupTarget = writable(null); + // export const visibleToolbar = writableWithStorage(true, 'visibleToolbar'); export const visibleToolbar = writable(false); export const leftPanelWidth = writableWithStorage(300, 'leftPanelWidth'); diff --git a/packages/web/src/tabpanel/TabsPanel.svelte b/packages/web/src/tabpanel/TabsPanel.svelte index 0f25b2d06..940492cd9 100644 --- a/packages/web/src/tabpanel/TabsPanel.svelte +++ b/packages/web/src/tabpanel/TabsPanel.svelte @@ -264,6 +264,10 @@ getCurrentDatabase, lockedDatabaseMode, getLockedDatabaseMode, + draggingDbGroup, + draggingDbGroupTarget, + draggingTab, + draggingTabTarget, } from '../stores'; import tabs from '../tabs'; import { setSelectedTab } from '../utility/common'; @@ -306,11 +310,6 @@ $: allowSplitTab = _.uniq(filteredTabsFromAllParts.map(x => x.multiTabIndex || 0)).length == 1 && filteredTabsFromAllParts.length >= 2; - let draggingTab = null; - let draggingTabTarget = null; - let draggingDbGroup = null; - let draggingDbGroupTarget = null; - const connectionColorFactory = useConnectionColorFactory(3, null, true); const handleTabClick = (e, tabid) => { @@ -409,7 +408,7 @@ } } - function dragDropTabs(draggingTabs, targetTabs) { + function dragDropTabs(draggingTabs, targetTabs, multiTabIndex) { if (draggingTabs.find(x => targetTabs.find(y => x.tabid == y.tabid))) return; const items = sortTabs($openedTabs.filter(x => x.closedTime == null)); @@ -441,6 +440,7 @@ return { ...x, tabOrder: index + 1, + multiTabIndex: draggingTabs.find(y => y.tabid == x.tabid) ? multiTabIndex : x.multiTabIndex, }; } return x; @@ -465,8 +465,8 @@ {#if !$lockedDatabaseMode}