diff options
| author | Anwarul Islam <anwaarulislaam@gmail.com> | 2025-07-18 03:36:01 +0600 |
|---|---|---|
| committer | Anwarul Islam <anwaarulislaam@gmail.com> | 2025-07-18 16:43:50 +0600 |
| commit | 0e1311bfe027c0f5ebbe9a511368dc0fc67172dc (patch) | |
| tree | 950aa7e764a0deea3655b02c3ddd3961ad7f0324 /apps/web/src/components/editor/timeline-track.tsx | |
| parent | 0b12fdfa0a770013c24c354cc66a6705b05f3437 (diff) | |
| download | opencut-0e1311bfe027c0f5ebbe9a511368dc0fc67172dc.tar.gz | |
feat: ripple editing support sync with latest timeline changes
Diffstat (limited to 'apps/web/src/components/editor/timeline-track.tsx')
| -rw-r--r-- | apps/web/src/components/editor/timeline-track.tsx | 47 |
1 files changed, 40 insertions, 7 deletions
diff --git a/apps/web/src/components/editor/timeline-track.tsx b/apps/web/src/components/editor/timeline-track.tsx index 91b3ffa3..58ca411e 100644 --- a/apps/web/src/components/editor/timeline-track.tsx +++ b/apps/web/src/components/editor/timeline-track.tsx @@ -39,6 +39,7 @@ export function TimelineTrackContent({ addTrack, moveElementToTrack, updateElementStartTime, + updateElementStartTimeWithRipple, addElementToTrack, selectedElements, selectElement, @@ -49,6 +50,7 @@ export function TimelineTrackContent({ clearSelectedElements, insertTrackAt, snappingEnabled, + rippleEditingEnabled, } = useTimelineStore(); const { currentTime } = usePlaybackStore(); @@ -272,7 +274,20 @@ export function TimelineTrackContent({ if (!hasOverlap) { if (dragState.trackId === track.id) { - updateElementStartTime(track.id, dragState.elementId, finalTime); + // Use ripple editing if enabled, otherwise regular update + if (rippleEditingEnabled) { + updateElementStartTimeWithRipple( + track.id, + dragState.elementId, + finalTime + ); + } else { + updateElementStartTime( + track.id, + dragState.elementId, + finalTime + ); + } } else { moveElementToTrack( dragState.trackId, @@ -280,11 +295,20 @@ export function TimelineTrackContent({ dragState.elementId ); requestAnimationFrame(() => { - updateElementStartTime( - track.id, - dragState.elementId!, - finalTime - ); + // Use ripple editing if enabled, otherwise regular update + if (rippleEditingEnabled) { + updateElementStartTimeWithRipple( + track.id, + dragState.elementId!, + finalTime + ); + } else { + updateElementStartTime( + track.id, + dragState.elementId!, + finalTime + ); + } }); } } @@ -318,7 +342,16 @@ export function TimelineTrackContent({ }); if (!hasOverlap) { - updateElementStartTime(track.id, dragState.elementId, finalTime); + // Use ripple editing if enabled, otherwise regular update + if (rippleEditingEnabled) { + updateElementStartTimeWithRipple( + track.id, + dragState.elementId, + finalTime + ); + } else { + updateElementStartTime(track.id, dragState.elementId, finalTime); + } } } } |
