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