'use client'
import { Button } from '@/components/ui/button'
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu'
import {
Maximize2,
Minimize2,
Monitor,
Volume2,
VolumeX,
Settings,
X,
RefreshCw,
Signal,
SignalLow,
SignalMedium,
Keyboard,
MousePointer2,
Loader2,
CheckCircle2
} from 'lucide-react'
interface Session {
id: string
machine_id: string | null
machine_name: string | null
started_at: string
}
type ConnectionState = 'connecting' | 'connected' | 'disconnected' | 'error'
interface ViewerToolbarProps {
session: Session | null
connectionState: ConnectionState
isFullscreen: boolean
quality: 'high' | 'medium' | 'low'
isMuted: boolean
onToggleFullscreen: () => void
onQualityChange: (quality: 'high' | 'medium' | 'low') => void
onToggleMute: () => void
onDisconnect: () => void
onReconnect: () => void
}
export function ViewerToolbar({
session,
connectionState,
isFullscreen,
quality,
isMuted,
onToggleFullscreen,
onQualityChange,
onToggleMute,
onDisconnect,
onReconnect,
}: ViewerToolbarProps) {
const getQualityIcon = () => {
switch (quality) {
case 'high': return Signal
case 'medium': return SignalMedium
case 'low': return SignalLow
}
}
const getConnectionBadge = () => {
switch (connectionState) {
case 'connecting':
return (