summaryrefslogtreecommitdiff
path: root/apps/web/src/components/editor/timeline/timeline-tracks-area.tsx
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2025-07-17 19:46:23 +0200
committerMaze Winther <mazewinther@gmail.com>2025-07-17 19:46:23 +0200
commit648f0b8529b9f3bafb3bfd9a84a31bc9ac6623ae (patch)
tree00a438ce93f12b3b58f705189142a9385d497e4a /apps/web/src/components/editor/timeline/timeline-tracks-area.tsx
parent0b919d4df84ea523ac9e069bdad5c3b34b7c603d (diff)
downloadopencut-648f0b8529b9f3bafb3bfd9a84a31bc9ac6623ae.tar.gz
stable timeline
Diffstat (limited to 'apps/web/src/components/editor/timeline/timeline-tracks-area.tsx')
-rw-r--r--apps/web/src/components/editor/timeline/timeline-tracks-area.tsx84
1 files changed, 0 insertions, 84 deletions
diff --git a/apps/web/src/components/editor/timeline/timeline-tracks-area.tsx b/apps/web/src/components/editor/timeline/timeline-tracks-area.tsx
deleted file mode 100644
index e8ca1ec3..00000000
--- a/apps/web/src/components/editor/timeline/timeline-tracks-area.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-import { Plus } from "lucide-react";
-import {
- ContextMenu,
- ContextMenuContent,
- ContextMenuItem,
- ContextMenuTrigger,
-} from "../../ui/context-menu";
-import { useTimelineStore } from "@/stores/timeline-store";
-import { TimelineTrackContent } from "./timeline-track";
-import { TrackIcon } from "./track-icon";
-import { getTrackHeight } from "@/constants/timeline-constants";
-import type { TimelineTrack } from "@/types/timeline";
-import type { SnapPoint } from "@/hooks/use-timeline-snapping";
-
-export interface TimelineTracksAreaProps {
- tracks: TimelineTrack[];
- zoomLevel: number;
- handleSnapPointChange: (snapPoint: SnapPoint | null) => void;
- clearSelectedElements: () => void;
-}
-
-export function TimelineTracksArea({
- tracks,
- zoomLevel,
- handleSnapPointChange,
- clearSelectedElements,
-}: TimelineTracksAreaProps) {
- const { toggleTrackMute } = useTimelineStore();
-
- return (
- <>
- <div className="h-full flex flex-col absolute left-0 top-0 w-24 bg-panel border-r border-black z-[100]">
- <div className="sticky left-0 h-5 border-inset z-[100]"></div>
-
- {tracks.map((track, index) => (
- <div
- key={track.id}
- className="sticky left-0 flex items-center border-b border-panel border-inset group z-[100]"
- style={{ height: `${getTrackHeight(track.type)}px` }}
- >
- <div className="flex items-center gap-2 px-2">
- <TrackIcon track={track} />
- </div>
- {track.muted && (
- <span className="text-xs text-red-500 font-semibold">Muted</span>
- )}
- </div>
- ))}
- </div>
-
- <div className="h-full flex flex-col pt-5 ml-24">
- {tracks.map((track, index) => (
- <ContextMenu key={track.id}>
- <ContextMenuTrigger asChild>
- <div
- className="h-full"
- style={{ height: `${getTrackHeight(track.type)}px` }}
- onClick={(e) => {
- if (!(e.target as HTMLElement).closest(".timeline-element")) {
- clearSelectedElements();
- }
- }}
- >
- <TimelineTrackContent
- track={track}
- zoomLevel={zoomLevel}
- onSnapPointChange={handleSnapPointChange}
- />
- </div>
- </ContextMenuTrigger>
- <ContextMenuContent>
- <ContextMenuItem onClick={() => toggleTrackMute(track.id)}>
- {track.muted ? "Unmute Track" : "Mute Track"}
- </ContextMenuItem>
- <ContextMenuItem>Track settings (soon)</ContextMenuItem>
- </ContextMenuContent>
- </ContextMenu>
- ))}
-
- <div style={{ height: `${getTrackHeight("media")}px` }}></div>
- </div>
- </>
- );
-}