/** * TrackInsertionZone - Зоны для создания новых треков * * Компонент создает drop-зоны между треками для автоматического * создания новых треков при перетаскивании медиа файлов: * - Зоны вставки выше, между и ниже треков * - Автоматическое определение типа трека по медиа файлу * - Визуальная обратная связь при hovering */ import { useDroppable } from "@dnd-kit/core" import { Plus } from "lucide-react" import { cn } from "@/lib/utils" interface TrackInsertionZoneProps { position: "above" | "between" | "below" trackId?: string // ID трека, относительно которого позиционируется зона insertIndex: number // Индекс позиции для вставки нового трека className?: string } export function TrackInsertionZone({ position, trackId, insertIndex, className }: TrackInsertionZoneProps) { const dropId = `track-insertion-${position}-${trackId || "none"}-${insertIndex}` const { isOver, setNodeRef } = useDroppable({ id: dropId, data: { type: "track-insertion", position, trackId, insertIndex, }, }) return (