From a9a8db784cad257a495ffe8cdff89a12eb81eb90 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Tue, 3 Dec 2024 10:05:04 -0600 Subject: [PATCH] fix motion only --- .../timeline/MotionReviewTimeline.tsx | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/web/src/components/timeline/MotionReviewTimeline.tsx b/web/src/components/timeline/MotionReviewTimeline.tsx index 2aa1bbbc6..cdd14b57d 100644 --- a/web/src/components/timeline/MotionReviewTimeline.tsx +++ b/web/src/components/timeline/MotionReviewTimeline.tsx @@ -88,12 +88,36 @@ export function MotionReviewTimeline({ let segmentTime = timelineStartAligned; for (let i = 0; i < Math.ceil(timelineDuration / segmentDuration); i++) { - segments.push(segmentTime); + if (!motionOnly) { + segments.push(segmentTime); + } else { + const motionStart = segmentTime; + const motionEnd = motionStart + segmentDuration; + const overlappingReviewItems = events.some( + (item) => + (item.start_time >= motionStart && item.start_time < motionEnd) || + ((item.end_time ?? timelineStart) > motionStart && + (item.end_time ?? timelineStart) <= motionEnd) || + (item.start_time <= motionStart && + (item.end_time ?? timelineStart) >= motionEnd), + ); + if (getMotionSegmentValue(segmentTime) && !overlappingReviewItems) { + segments.push(segmentTime); + } + } segmentTime -= segmentDuration; } return segments; - }, [timelineStartAligned, segmentDuration, timelineDuration]); + }, [ + timelineStartAligned, + segmentDuration, + timelineDuration, + motionOnly, + getMotionSegmentValue, + events, + timelineStart, + ]); const scrollToSegment = useCallback( (segmentTime: number, ifNeeded?: boolean) => {