Fix resolution of timeline dragging (#10219)

This commit is contained in:
Nicolas Mowen 2024-03-03 17:17:24 -07:00 committed by GitHub
parent a515697e08
commit 1441a83151
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -68,7 +68,11 @@ function useDraggableHandler({
}, []); }, []);
const updateHandlebarPosition = useCallback( const updateHandlebarPosition = useCallback(
(newHandlePosition: number, segmentStartTime: number) => { (
newHandlePosition: number,
segmentStartTime: number,
updateHandle: boolean,
) => {
const thumb = scrollTimeRef.current; const thumb = scrollTimeRef.current;
if (thumb) { if (thumb) {
requestAnimationFrame(() => { requestAnimationFrame(() => {
@ -87,7 +91,8 @@ function useDraggableHandler({
}); });
} }
}); });
if (setHandlebarTime) {
if (setHandlebarTime && updateHandle) {
setHandlebarTime(segmentStartTime); setHandlebarTime(segmentStartTime);
} }
} }
@ -146,7 +151,15 @@ function useDraggableHandler({
updateHandlebarPosition( updateHandlebarPosition(
newHandlePosition - segmentHeight, newHandlePosition - segmentHeight,
segmentStartTime, segmentStartTime,
false,
); );
if (setHandlebarTime) {
setHandlebarTime(
timelineStart -
(newHandlePosition / segmentHeight) * segmentDuration,
);
}
} }
}, },
// we know that these deps are correct // we know that these deps are correct
@ -185,7 +198,11 @@ function useDraggableHandler({
parentScrollTop - parentScrollTop -
scrolled; scrolled;
updateHandlebarPosition(newHandlePosition - segmentHeight, handlebarTime); updateHandlebarPosition(
newHandlePosition - segmentHeight,
handlebarTime,
true,
);
} }
// we know that these deps are correct // we know that these deps are correct
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps