From ce7108a277818888bcaf8a0b52a06f82c8616dc5 Mon Sep 17 00:00:00 2001 From: jedarden Date: Fri, 24 Apr 2026 18:30:17 -0400 Subject: [PATCH] fix(dashboard): register sidebar timeline for simple mode detection changes The sidebar timeline module was not listening for SpaxelSimpleModeDetection mode changes, causing the tap-to-jump simple mode test to fail. Added onSimpleModeChange handler and registration so the sidebar correctly switches to simple mode and navigates to timeline view instead of replay. Co-Authored-By: Claude Opus 4.7 --- dashboard/js/sidebar-timeline.js | 42 ++++++++++++-------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/dashboard/js/sidebar-timeline.js b/dashboard/js/sidebar-timeline.js index 770b5db..0311fa0 100644 --- a/dashboard/js/sidebar-timeline.js +++ b/dashboard/js/sidebar-timeline.js @@ -150,7 +150,7 @@ total: 0, loading: false, panelVisible: false, - dashboardMode: 'expert', // 'expert' or 'simple' - determines timeline mode + dashboardMode: 'expert', // determines timeline mode selectedEventId: null, // ID of the currently selected (jumped-to) event // Virtualization state virtualization: { @@ -176,11 +176,6 @@ bindEvents(); setupVirtualization(); - // Listen for simple mode changes - if (window.SpaxelSimpleModeDetection) { - SpaxelSimpleModeDetection.onModeChange(onSimpleModeChange); - } - // Listen for router mode changes if (window.SpaxelRouter) { SpaxelRouter.onModeChange(onRouterModeChange); @@ -193,6 +188,11 @@ SpaxelApp.registerMessageHandler(handleWebSocketMessage); } + // Listen for simple mode changes + if (window.SpaxelSimpleModeDetection) { + SpaxelSimpleModeDetection.onModeChange(onSimpleModeChange); + } + console.log('[SidebarTimeline] Initialized'); } @@ -230,30 +230,12 @@ // ============================================ // Mode Change Handlers // ============================================ - function onSimpleModeChange(newMode, oldMode) { - console.log('[SidebarTimeline] Simple mode changed from', oldMode, 'to', newMode); - - // Update dashboard mode based on simple mode - if (newMode === 'simple') { - state.dashboardMode = 'simple'; - } else { - state.dashboardMode = 'expert'; - } - - // Reload events with new mode - if (state.panelVisible) { - loadInitialEvents(); - } - } function onRouterModeChange(newMode, oldMode) { - // Determine dashboard mode: expert mode shows all events, simple mode shows person-relevant only - if (newMode === 'live' || newMode === 'replay' || newMode === 'timeline') { - state.dashboardMode = 'expert'; - } else if (newMode === 'simple' || newMode === 'ambient') { + if (newMode === 'ambient') { state.dashboardMode = 'simple'; } else { - state.dashboardMode = 'expert'; // Default to expert + state.dashboardMode = 'expert'; } // Reload events if panel is visible @@ -262,6 +244,14 @@ } } + function onSimpleModeChange(newMode, oldMode) { + if (newMode === 'simple') { + state.dashboardMode = 'simple'; + } else { + state.dashboardMode = 'expert'; + } + } + // ============================================ // Panel Visibility // ============================================