summaryrefslogtreecommitdiff
path: root/apps/web/src/components/editor/timeline-track.tsx
diff options
context:
space:
mode:
authorAnwarul Islam <anwaarulislaam@gmail.com>2025-07-18 03:36:01 +0600
committerAnwarul Islam <anwaarulislaam@gmail.com>2025-07-18 16:43:50 +0600
commit0e1311bfe027c0f5ebbe9a511368dc0fc67172dc (patch)
tree950aa7e764a0deea3655b02c3ddd3961ad7f0324 /apps/web/src/components/editor/timeline-track.tsx
parent0b12fdfa0a770013c24c354cc66a6705b05f3437 (diff)
downloadopencut-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.tsx47
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);
+ }
}
}
}