summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/timeline/placement/main-track.ts
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-20 11:31:17 +0200
committerMaze Winther <mazewinther@gmail.com>2026-04-20 11:31:17 +0200
commit3e89d2998588f8e35c524e523ba2ee853f0f6475 (patch)
tree57221f96c1259b3b07e3ddf8c1adefc502b9d8eb /apps/web/src/lib/timeline/placement/main-track.ts
parent729d10592f4e802f91c555c309ff3ba4b119f843 (diff)
downloadopencut-3e89d2998588f8e35c524e523ba2ee853f0f6475.tar.gz
refactor: restructure files to their domains, new preview overlay system, and dep graph
Diffstat (limited to 'apps/web/src/lib/timeline/placement/main-track.ts')
-rw-r--r--apps/web/src/lib/timeline/placement/main-track.ts54
1 files changed, 0 insertions, 54 deletions
diff --git a/apps/web/src/lib/timeline/placement/main-track.ts b/apps/web/src/lib/timeline/placement/main-track.ts
deleted file mode 100644
index 7e206517..00000000
--- a/apps/web/src/lib/timeline/placement/main-track.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import type { SceneTracks, TimelineElement, VideoTrack } from "@/lib/timeline";
-
-export const MAIN_TRACK_NAME = "Main Track";
-
-export function getEarliestMainTrackElement({
- mainTrack,
- excludeElementId,
-}: {
- mainTrack: VideoTrack;
- excludeElementId?: string;
-}): TimelineElement | null {
- const elements = mainTrack.elements.filter((element) => {
- return !excludeElementId || element.id !== excludeElementId;
- });
- if (elements.length === 0) {
- return null;
- }
-
- return elements.reduce((earliestElement, element) => {
- return element.startTime < earliestElement.startTime
- ? element
- : earliestElement;
- });
-}
-
-export function enforceMainTrackStart({
- tracks,
- targetTrackId,
- requestedStartTime,
- excludeElementId,
-}: {
- tracks: SceneTracks;
- targetTrackId: string;
- requestedStartTime: number;
- excludeElementId?: string;
-}): number {
- if (tracks.main.id !== targetTrackId) {
- return requestedStartTime;
- }
-
- const earliestElement = getEarliestMainTrackElement({
- mainTrack: tracks.main,
- excludeElementId,
- });
- if (!earliestElement) {
- return 0;
- }
-
- if (requestedStartTime <= earliestElement.startTime) {
- return 0;
- }
-
- return requestedStartTime;
-}