/** * TrackControlsPanel - Левая панель управления треками * * Компонент для профессионального управления треками: * - Отображение списка треков * - Добавление новых треков * - Управление видимостью и блокировкой */ import { Eye, EyeOff, Image, Lock, Music, Type, Unlock, Video, Volume2 } from "lucide-react" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/components/ui/resizable" import { cn } from "@/lib/utils" import { useTimeline } from "../hooks/use-timeline" import { useTracks } from "../hooks/use-tracks" import { PersonsPanel } from "./persons-panel" // Типы треков с иконками и цветами const TRACK_TYPES = [ { type: "video" as const, label: "Видео", icon: Video, color: "bg-blue-500", description: "Видео треки", }, { type: "audio" as const, label: "Аудио", icon: Volume2, color: "bg-green-500", description: "Аудио треки", }, { type: "image" as const, label: "Изображения", icon: Image, color: "bg-purple-500", description: "Изображения и фото", }, { type: "music" as const, label: "Музыка", icon: Music, color: "bg-orange-500", description: "Музыкальные треки", }, { type: "subtitle" as const, label: "Субтитры", icon: Type, color: "bg-yellow-500", description: "Текст и субтитры", }, ] interface TrackControlsPanelProps { className?: string } export function TrackControlsPanel({ className }: TrackControlsPanelProps) { const { tracks } = useTracks() const { updateTrack } = useTimeline() const toggleTrackVisibility = (trackId: string, currentHidden: boolean) => { void updateTrack(trackId, { isHidden: !currentHidden }) } const toggleTrackLock = (trackId: string, currentLock: boolean) => { void updateTrack(trackId, { isLocked: !currentLock }) } return (
Треки не найдены