feat: phase 5 refactor

This commit is contained in:
2026-02-21 18:17:35 +01:00
parent 78a163a0c9
commit d70b13952a
5 changed files with 114 additions and 15 deletions

View File

@@ -0,0 +1,34 @@
import {
getActivityClickActions,
type ActivityAction,
type ActivityId,
type ActivitySnapshot,
} from './activityBehavior';
import type { SidebarView } from './sidebarViewRegistry';
export interface ActivityExecutionHandlers {
setActiveView: (view: SidebarView) => void;
toggleSidebar: () => void;
}
export function executeActivityClickActions(
actions: ActivityAction[],
handlers: ActivityExecutionHandlers,
): void {
for (const action of actions) {
if (action.type === 'toggleSidebar') {
handlers.toggleSidebar();
continue;
}
handlers.setActiveView(action.view);
}
}
export function executeActivityClick(
snapshot: ActivitySnapshot,
activityId: ActivityId,
handlers: ActivityExecutionHandlers,
): void {
executeActivityClickActions(getActivityClickActions(snapshot, activityId), handlers);
}