diff options
| author | Maze Winther <mazewinther@gmail.com> | 2026-04-15 05:43:29 +0200 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2026-04-15 05:43:29 +0200 |
| commit | ac43a5a73fa905cdac905bc956763b6093d6738e (patch) | |
| tree | 8d9ff8c3a9ae55bac8860215bec69cc5b6094a1c /apps/web/src/lib/timeline/placement | |
| parent | 6312fc5b078689bc82c52fda9b7f92ee0a21d311 (diff) | |
| download | opencut-ac43a5a73fa905cdac905bc956763b6093d6738e.tar.gz | |
feat: move/resize multiple elements
Diffstat (limited to 'apps/web/src/lib/timeline/placement')
| -rw-r--r-- | apps/web/src/lib/timeline/placement/__tests__/resolve.test.ts | 7 | ||||
| -rw-r--r-- | apps/web/src/lib/timeline/placement/overlap.ts | 8 |
2 files changed, 12 insertions, 3 deletions
diff --git a/apps/web/src/lib/timeline/placement/__tests__/resolve.test.ts b/apps/web/src/lib/timeline/placement/__tests__/resolve.test.ts index 4d39f5d8..7cadb9b7 100644 --- a/apps/web/src/lib/timeline/placement/__tests__/resolve.test.ts +++ b/apps/web/src/lib/timeline/placement/__tests__/resolve.test.ts @@ -329,7 +329,12 @@ describe("resolveTrackPlacement", () => { id: "graphic-1", type: "graphic", elements: [ - buildElement({ id: "a", type: "graphic", startTime: 0, duration: 5 }), + buildElement({ + id: "a", + type: "graphic", + startTime: 0, + duration: 5, + }), ], }), ], diff --git a/apps/web/src/lib/timeline/placement/overlap.ts b/apps/web/src/lib/timeline/placement/overlap.ts index e5f95fa9..5e37c052 100644 --- a/apps/web/src/lib/timeline/placement/overlap.ts +++ b/apps/web/src/lib/timeline/placement/overlap.ts @@ -1,6 +1,10 @@ -import type { TimelineElement, TimelineTrack } from "@/lib/timeline"; +import type { TimelineElement } from "@/lib/timeline"; import type { PlacementTimeSpan } from "./types"; +interface TrackWithElements { + elements: TimelineElement[]; +} + function wouldElementOverlap({ elements, startTime, @@ -26,7 +30,7 @@ export function canPlaceTimeSpansOnTrack({ track, timeSpans, }: { - track: TimelineTrack; + track: TrackWithElements; timeSpans: PlacementTimeSpan[]; }): boolean { return timeSpans.every(({ startTime, duration, excludeElementId }) => { |
