From 88fc495bfa4d52f5fad04c803b73de5692759acb Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Tue, 14 Apr 2026 23:41:48 +0200 Subject: [PATCH] Update ProjectSchedulePane to include sequence handling and props --- src/app/ProjectSchedulePane.tsx | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/app/ProjectSchedulePane.tsx b/src/app/ProjectSchedulePane.tsx index b86a6c64..0ebcba42 100644 --- a/src/app/ProjectSchedulePane.tsx +++ b/src/app/ProjectSchedulePane.tsx @@ -20,12 +20,18 @@ import { } from "../sequencer/project-sequencer-control-options"; import { findHeldSequenceControlEffect, - getProjectScheduleRoutineHeldSteps + getProjectScheduleRoutineHeldSteps, + getProjectSequenceHeldSteps } from "../sequencer/project-sequence-steps"; +import { + getProjectSequences, + type ProjectSequenceLibrary +} from "../sequencer/project-sequences"; interface ProjectSequencerPaneProps { targetOptions: ProjectScheduleTargetOption[]; scheduler: ProjectScheduler; + sequences: ProjectSequenceLibrary; selectedRoutineId: string | null; onSelectRoutine(routineId: string | null): void; onAddRoutine(targetKey: string): void; @@ -37,6 +43,7 @@ interface ProjectSequencerPaneProps { onSetRoutineStartHour(routineId: string, startHour: number): void; onSetRoutineEndHour(routineId: string, endHour: number): void; onSetRoutinePriority(routineId: string, priority: number): void; + onSetRoutineSequenceId(routineId: string, sequenceId: string | null): void; onSetRoutineEffectOption( routineId: string, effectOptionId: ProjectScheduleEffectOptionId @@ -68,12 +75,15 @@ function handleCommitOnEnter( commit(); } -function getRoutineSummary(routine: ProjectScheduleRoutine): string { +function getRoutineSummary( + routine: ProjectScheduleRoutine, + sequences: ProjectSequenceLibrary +): string { const summaryParts = [ formatProjectScheduleDaySelection(routine.days), `${formatTimeOfDayHours(routine.startHour)}-${formatTimeOfDayHours(routine.endHour)}` ]; - const heldSteps = getProjectScheduleRoutineHeldSteps(routine); + const heldSteps = getProjectScheduleRoutineHeldSteps(routine, sequences); if (routine.target.kind === "actor") { const presenceEffect = findHeldSequenceControlEffect( @@ -106,8 +116,11 @@ function getRoutineSummary(routine: ProjectScheduleRoutine): string { return summaryParts.join(" ยท "); } -function isRoutineEffectInactive(routine: ProjectScheduleRoutine): boolean { - const heldSteps = getProjectScheduleRoutineHeldSteps(routine); +function isRoutineEffectInactive( + routine: ProjectScheduleRoutine, + sequences: ProjectSequenceLibrary +): boolean { + const heldSteps = getProjectScheduleRoutineHeldSteps(routine, sequences); if (routine.target.kind === "actor") { return (