diff --git a/src/systems/dashboard/dashboardIntegration.js b/src/systems/dashboard/dashboardIntegration.js index 35c8b16..d452664 100644 --- a/src/systems/dashboard/dashboardIntegration.js +++ b/src/systems/dashboard/dashboardIntegration.js @@ -14,6 +14,7 @@ import { WidgetRegistry } from './widgetRegistry.js'; import { generateDefaultDashboard } from './defaultLayout.js'; import { TabScrollManager } from './tabScrollManager.js'; import { HeaderOverflowManager } from './headerOverflowManager.js'; +import { TabContextMenu } from './tabContextMenu.js'; import { showConfirmDialog } from './confirmDialog.js'; // Widget imports @@ -31,6 +32,7 @@ import { registerQuestsWidget } from './widgets/questsWidget.js'; let dashboardManager = null; let tabScrollManager = null; let headerOverflowManager = null; +let tabContextMenu = null; /** * Get the dashboard manager instance @@ -123,6 +125,23 @@ export async function initializeDashboard(dependencies) { tabScrollManager.init(); } + // Initialize tab context menu + if (tabsContainer && dashboardManager?.tabManager) { + tabContextMenu = new TabContextMenu({ + tabManager: dashboardManager.tabManager, + onTabChange: (event, data) => { + console.log('[RPG Companion] Tab context menu event:', event, data); + // Re-render tabs after tab operations + dashboardManager.renderTabs(); + // Save dashboard state + if (dashboardManager.autoSave) { + saveSettings(); + } + } + }); + tabContextMenu.init(tabsContainer); + } + // Initialize header overflow manager const headerRight = document.querySelector('#rpg-dashboard-header-right'); if (headerRight) { diff --git a/src/systems/dashboard/dashboardTemplate.html b/src/systems/dashboard/dashboardTemplate.html index 6fa6cad..79e61dd 100644 --- a/src/systems/dashboard/dashboardTemplate.html +++ b/src/systems/dashboard/dashboardTemplate.html @@ -12,6 +12,10 @@
+ + @@ -24,10 +28,6 @@ - -