/** * Компонент для выбора активной камеры в мультикамерном режиме */ import { Camera, Check } from "lucide-react" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { cn } from "@/lib/utils" import type { MulticamAngle } from "../hooks/use-multicam" interface CameraSelectorProps { /** * Список углов камер */ angles: MulticamAngle[] /** * Индекс активного угла */ activeAngleIndex: number /** * Обработчик выбора камеры */ onSelectAngle: (angleIndex: number) => void /** * Отключен ли селектор */ disabled?: boolean /** * Класс для кнопки */ className?: string } export function CameraSelector({ angles, activeAngleIndex, onSelectAngle, disabled = false, className, }: CameraSelectorProps) { const activeAngle = angles[activeAngleIndex] if (angles.length <= 1) { return null } return ( Выберите камеру {angles.map((angle, index) => ( onSelectAngle(index)} className="gap-2">
{index + 1} {angle.name} {angle.syncOffset !== 0 && ( {angle.syncOffset > 0 ? "+" : ""} {angle.syncOffset.toFixed(1)}s )}
{index === activeAngleIndex && }
))}
) }