diff options
Diffstat (limited to 'apps/web/src/lib/timeline')
| -rw-r--r-- | apps/web/src/lib/timeline/index.ts | 1 | ||||
| -rw-r--r-- | apps/web/src/lib/timeline/ripple-utils.ts | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/apps/web/src/lib/timeline/index.ts b/apps/web/src/lib/timeline/index.ts index c7236887..887ff7ab 100644 --- a/apps/web/src/lib/timeline/index.ts +++ b/apps/web/src/lib/timeline/index.ts @@ -5,6 +5,7 @@ export * from "./track-element-update"; export * from "./element-utils"; export * from "./zoom-utils"; export * from "./ruler-utils"; +export * from "./ripple-utils"; export * from "./pixel-utils"; export function calculateTotalDuration({ diff --git a/apps/web/src/lib/timeline/ripple-utils.ts b/apps/web/src/lib/timeline/ripple-utils.ts new file mode 100644 index 00000000..5f37bf29 --- /dev/null +++ b/apps/web/src/lib/timeline/ripple-utils.ts @@ -0,0 +1,17 @@ +import type { TimelineElement } from "@/types/timeline"; + +export function rippleShiftElements({ + elements, + afterTime, + shiftAmount, +}: { + elements: TimelineElement[]; + afterTime: number; + shiftAmount: number; +}): TimelineElement[] { + return elements.map((element) => + element.startTime >= afterTime + ? { ...element, startTime: element.startTime - shiftAmount } + : element, + ); +} |
