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 <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-04-24 18:30:17 -04:00
parent 6951ff1d00
commit ce7108a277

View file

@ -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
// ============================================