/** * Session Controls Component * * Toolbar for controlling the remote session (quality, displays, special keys) */ import React, { useState } from 'react'; import type { QualitySettings, Display } from '../types/protocol'; interface SessionControlsProps { displays?: Display[]; currentDisplay?: number; onDisplayChange?: (displayId: number) => void; quality?: QualitySettings; onQualityChange?: (settings: QualitySettings) => void; onSpecialKey?: (key: 'ctrl-alt-del' | 'lock-screen' | 'print-screen') => void; onDisconnect?: () => void; } export const SessionControls: React.FC = ({ displays = [], currentDisplay = 0, onDisplayChange, quality, onQualityChange, onSpecialKey, onDisconnect, }) => { const [showQuality, setShowQuality] = useState(false); const handleQualityPreset = (preset: 'auto' | 'low' | 'balanced' | 'high') => { onQualityChange?.({ preset, codec: 'auto', }); }; return (
{/* Display selector */} {displays.length > 1 && ( )} {/* Quality dropdown */}
{showQuality && (
{(['auto', 'low', 'balanced', 'high'] as const).map((preset) => ( ))}
)}
{/* Special keys */} {/* Spacer */}
{/* Disconnect */}
); }; export default SessionControls;