diff --git a/packages/web/src/widgets/TabsPanel.svelte b/packages/web/src/widgets/TabsPanel.svelte index f8d56f040..a406d41fe 100644 --- a/packages/web/src/widgets/TabsPanel.svelte +++ b/packages/web/src/widgets/TabsPanel.svelte @@ -102,12 +102,36 @@ } }; - const tabContextMenu = tabid => () => [ - { - text: 'Close', - onClick: () => closeTab(tabid), - }, - ]; + const tabContextMenu = (tabid, props) => () => { + const { conid, database } = props || {}; + const res = [ + { + text: 'Close', + onClick: () => closeTab(tabid), + }, + { + text: 'Close all', + onClick: closeAll, + }, + { + text: 'Close others', + onClick: () => closeOthers(tabid), + }, + ]; + if (conid && database) { + res.push( + { + text: `Close with same DB - ${database}`, + onClick: () => closeWithSameDb(tabid), + }, + { + text: `Close with other DB than ${database}`, + onClick: () => closeWithOtherDb(tabid), + } + ); + } + return res; + }; {#each dbKeys as dbKey} @@ -123,7 +147,7 @@ class:selected={tab.selected} on:click={e => handleTabClick(e, tab.tabid)} on:mouseup={e => handleMouseUp(e, tab.tabid)} - use:contextMenu={tabContextMenu(tab.tabid)} + use:contextMenu={tabContextMenu(tab.tabid, tab.props)} >