import { Cast, Info, Maximize2, Minimize2 } from "lucide-react"; import type { LucideIcon } from "lucide-react"; import { SubtitlePicker } from "./subtitle-picker"; import { VolumeControl } from "./volume-control"; import { QualityPicker } from "./quality-picker"; import type { SubtitleTrack } from "./video-player"; interface TopControlBarProps { // Subtitles subtitleTracks: SubtitleTrack[]; activeSubtitleTrack: number; showSubtitlePicker: boolean; onToggleSubtitlePicker: () => void; onChangeSubtitleTrack: (id: number) => void; // Volume volume: number; isMuted: boolean; VolumeIcon: LucideIcon; showVolumeSlider: boolean; onToggleVolumeSlider: () => void; onToggleMute: () => void; onVolumeChange: (v: number) => void; // Fullscreen isFullscreen: boolean; onToggleFullscreen: () => void; // Cast castAvailable: boolean; isCasting: boolean; castDeviceName?: string | null; streamUrl?: string | null; onRequestCast: (url: string) => void; onStopCasting: () => void; // Quality quality: string; qualityOptions: { value: string; label: string }[]; showQualityPicker: boolean; onToggleQualityPicker: () => void; onChangeQuality: (q: string) => void; // Stats & guide showStats: boolean; onToggleStats: () => void; showSchedule: boolean; onToggleSchedule: () => void; } export function TopControlBar({ subtitleTracks, activeSubtitleTrack, showSubtitlePicker, onToggleSubtitlePicker, onChangeSubtitleTrack, volume, isMuted, VolumeIcon, showVolumeSlider, onToggleVolumeSlider, onToggleMute, onVolumeChange, isFullscreen, onToggleFullscreen, castAvailable, isCasting, castDeviceName, streamUrl, onRequestCast, onStopCasting, quality, qualityOptions, showQualityPicker, onToggleQualityPicker, onChangeQuality, showStats, onToggleStats, showSchedule, onToggleSchedule, }: TopControlBarProps) { return (
{ onChangeSubtitleTrack(id); if (id !== activeSubtitleTrack) onToggleSubtitlePicker(); }} /> { onVolumeChange(v); }} /> {castAvailable && ( )}
); }