fix motion only

This commit is contained in:
Josh Hawkins 2024-12-03 10:05:04 -06:00
parent e66cfbce99
commit a9a8db784c

View File

@ -88,12 +88,36 @@ export function MotionReviewTimeline({
let segmentTime = timelineStartAligned; let segmentTime = timelineStartAligned;
for (let i = 0; i < Math.ceil(timelineDuration / segmentDuration); i++) { 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; segmentTime -= segmentDuration;
} }
return segments; return segments;
}, [timelineStartAligned, segmentDuration, timelineDuration]); }, [
timelineStartAligned,
segmentDuration,
timelineDuration,
motionOnly,
getMotionSegmentValue,
events,
timelineStart,
]);
const scrollToSegment = useCallback( const scrollToSegment = useCallback(
(segmentTime: number, ifNeeded?: boolean) => { (segmentTime: number, ifNeeded?: boolean) => {