diff options
| author | Maze Winther <mazewinther@gmail.com> | 2025-07-17 19:46:23 +0200 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2025-07-17 19:46:23 +0200 |
| commit | 648f0b8529b9f3bafb3bfd9a84a31bc9ac6623ae (patch) | |
| tree | 00a438ce93f12b3b58f705189142a9385d497e4a /apps/web/src/components/editor/timeline/timeline-tracks-area.tsx | |
| parent | 0b919d4df84ea523ac9e069bdad5c3b34b7c603d (diff) | |
| download | opencut-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.tsx | 84 |
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> - </> - ); -} |
