refactor(rundown): simplify gap and overlap accumulation

The gap/overlap detection is already a merge-intervals sweep: `latestEvent`
is the running max end and `getTimeFrom` is `start - maxEnd`. Making that
explicit collapses the branching around it.

- getTimeFrom: the three branches all returned the same subtraction
- totalDuration: the gap === 0 / gap > 0 / gap < 0 cases are all
  Math.max(duration + gap, 0), since duration is never negative

Same behaviour, no signature changes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016XSraCPafWbAg35gAFrtgH
This commit is contained in:
Claude
2026-07-31 05:10:29 +00:00
parent 5cf36f049a
commit 93170fbc69
3 changed files with 19 additions and 31 deletions
+6 -12
View File
@@ -17,17 +17,11 @@ export function getTimeFrom(
const normalisedCurrentStart = current.timeStart + current.dayOffset * dayInMs;
const normalisedPreviousEnd = previous.timeStart + previous.duration + previous.dayOffset * dayInMs;
// event is linked to previous
if (normalisedCurrentStart === normalisedPreviousEnd) {
return 0;
}
// event has a gap from previous
if (normalisedCurrentStart > normalisedPreviousEnd) {
// time from previous is difference between start and previous end
return normalisedCurrentStart - normalisedPreviousEnd;
}
// event overlaps with previous
/**
* The distance between the current start and the previous end
* - positive: there is a gap between the events
* - zero: the current event starts on the previous end
* - negative: the events overlap
*/
return normalisedCurrentStart - normalisedPreviousEnd;
}