Skip to content

Commit 98a1e6e

Browse files
authored
fix draggable element pixel alignment (#10708)
1 parent d945e77 commit 98a1e6e

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

web/src/components/timeline/ReviewTimeline.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ export function ReviewTimeline({
259259
></div>
260260
</div>
261261
<div
262-
className={`absolute h-1 w-full bg-destructive ${isDragging && isMobile && draggableElementType == "handlebar" ? "top-1" : "top-1/2 transform -translate-y-1/2"}`}
262+
className={`absolute h-[4px] w-full bg-destructive ${isDragging && isMobile && draggableElementType == "handlebar" ? "top-1" : "top-1/2 transform -translate-y-1/2"}`}
263263
></div>
264264
</div>
265265
</div>
@@ -293,7 +293,7 @@ export function ReviewTimeline({
293293
></div>
294294
</div>
295295
<div
296-
className={`absolute h-1 w-full bg-selected ${isDragging && isMobile && draggableElementType == "export_end" ? "top-0" : "top-1/2 transform -translate-y-1/2"}`}
296+
className={`absolute h-[4px] w-full bg-selected ${isDragging && isMobile && draggableElementType == "export_end" ? "top-0" : "top-1/2 transform -translate-y-1/2"}`}
297297
></div>
298298
</div>
299299
</div>
@@ -318,7 +318,7 @@ export function ReviewTimeline({
318318
}`}
319319
>
320320
<div
321-
className={`absolute h-1 w-full bg-selected ${isDragging && isMobile && draggableElementType == "export_start" ? "top-[12px]" : "top-1/2 transform -translate-y-1/2"}`}
321+
className={`absolute h-[4px] w-full bg-selected ${isDragging && isMobile && draggableElementType == "export_start" ? "top-[12px]" : "top-1/2 transform -translate-y-1/2"}`}
322322
></div>
323323
<div
324324
className={`bg-selected mt-4 mx-auto ${

web/src/hooks/use-draggable-element.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -382,12 +382,12 @@ function useDraggableElement({
382382
const timelineRect = timelineRef.current.getBoundingClientRect();
383383
const timelineTopAbsolute = timelineRect.top;
384384
const rect = segmentElement.getBoundingClientRect();
385-
const segmentTop =
386-
rect.top + scrolled - timelineTopAbsolute - segmentHeight / 2;
385+
const segmentTop = rect.top + scrolled - timelineTopAbsolute;
387386
const offset =
388387
((draggableElementTime - alignedSegmentTime) / segmentDuration) *
389388
segmentHeight;
390-
const newElementPosition = segmentTop - offset;
389+
// subtract half the height of the handlebar cross bar (4px) for pixel perfection
390+
const newElementPosition = segmentTop - offset - 2;
391391

392392
updateDraggableElementPosition(
393393
newElementPosition,

0 commit comments

Comments
 (0)