fix(timeline): hide invalid drag previews

This commit is contained in:
wiiiii123 committed 2026-05-29 03:02:19 +07:00
1 parent 224f2d5697
commit face592dc3
1 file changed
+7 -3
@@ -127,7 +127,7 @@ export default function TimelineWrapper({
);
const resolveDragPreviewSpan = useCallback(
(event: DragMoveEvent, span: Span): Span => {
(event: DragMoveEvent, span: Span): Span | null => {
const proposedRowId = event.over?.id as string | undefined;
if (!proposedRowId) return span;
@@ -145,7 +145,7 @@ export default function TimelineWrapper({
resolveTargetRowId,
);
return resolved?.span ?? span;
return resolved?.span ?? null;
},
[allRegionSpans, hasOverlap, minItemDurationMs, resolveTargetRowId, totalMs],
);
@@ -166,7 +166,11 @@ export default function TimelineWrapper({
event.activatorEvent && "clientX" in event.activatorEvent
? (event.activatorEvent as PointerEvent).clientX + (event.delta?.x ?? 0)
: undefined;
if (previewSpan) showTooltip(previewSpan, screenX);
if (previewSpan) {
showTooltip(previewSpan, screenX);
} else {
showTooltip(null);
}
const moved = Math.hypot(event.delta?.x ?? 0, event.delta?.y ?? 0) > 0.01;
if (moved) {
onLiveSpanPreviewChange?.(event.active.id as string, previewSpan);