From b83911cc5a401624a0ec3fce1f90b735ec5342f0 Mon Sep 17 00:00:00 2001 From: wiiiii123 Date: Thu, 28 May 2026 15:33:00 +0700 Subject: [PATCH] fix(timeline): smooth clip trim resize --- .../timeline/components/wrapper/TimelineWrapper.tsx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/components/video-editor/timeline/components/wrapper/TimelineWrapper.tsx b/src/components/video-editor/timeline/components/wrapper/TimelineWrapper.tsx index f09b4001..58e55c3a 100644 --- a/src/components/video-editor/timeline/components/wrapper/TimelineWrapper.tsx +++ b/src/components/video-editor/timeline/components/wrapper/TimelineWrapper.tsx @@ -11,11 +11,7 @@ import { TimelineContext } from "dnd-timeline"; import type { Dispatch, ReactNode, SetStateAction } from "react"; import { useCallback, useRef } from "react"; import type { TimelineRegionSpan } from "../../core/timelineTypes"; -import { - clampRange, - resolveDragEnd, - resolveResizeEnd, -} from "../../dnd/engine"; +import { clampRange, resolveDragEnd, resolveResizeEnd } from "../../dnd/engine"; interface TimelineWrapperProps { children: ReactNode; @@ -162,9 +158,10 @@ export default function TimelineWrapper({ ? (event.activatorEvent as PointerEvent).clientX + (event.delta?.x ?? 0) : undefined; if (span) showTooltip(span, screenX); - onLiveSpanPreviewChange?.(event.active.id as string, span ?? null); + // dnd-timeline mutates the active item's DOM during resize; React preview + // renders here can reset that inline width/edge position and make trims stutter. }, - [onLiveSpanPreviewChange, showTooltip], + [showTooltip], ); const hideTooltip = useCallback(() => showTooltip(null), [showTooltip]);