import React from 'react'; import { MobileProgressBar } from './MobileProgressBar'; import { CompactControls } from './CompactControls'; import { FullControls } from './FullControls'; interface MobileControlsProps { showControls: boolean; isCompactLayout: boolean; isPlaying: boolean; currentTime: number; duration: number; volume: number; isMuted: boolean; isFullscreen: boolean; playbackRate: number; showMoreMenu: boolean; showVolumeMenu: boolean; showSpeedMenu: boolean; isPiPSupported: boolean; isProxied?: boolean; progressBarRef: React.RefObject; onTogglePlay: () => void; onSkipVideo: (seconds: number, side: 'left' | 'right') => void; onToggleMute: () => void; onToggleFullscreen: () => void; onToggleMoreMenu: () => void; onToggleVolumeMenu: () => void; onToggleSpeedMenu: () => void; onTogglePiP: () => void; onVolumeChange: (volume: number) => void; onSpeedChange: (speed: number) => void; onCopyLink: (type?: 'original' | 'proxy') => void; onProgressClick: (e: React.MouseEvent) => void; onProgressTouchStart: (e: React.TouchEvent) => void; onProgressTouchMove: (e: React.TouchEvent) => void; onProgressTouchEnd: (e: React.TouchEvent) => void; formatTime: (seconds: number) => string; speeds: number[]; } export function MobileControls(props: MobileControlsProps) { const { showControls, isCompactLayout, progressBarRef, currentTime, duration, onProgressClick, onProgressTouchStart, onProgressTouchMove, onProgressTouchEnd, showVolumeMenu, showSpeedMenu, isMuted, volume, playbackRate, speeds, onToggleMute, onVolumeChange, onSpeedChange, onToggleVolumeMenu, onToggleSpeedMenu } = props; const iconSize = isCompactLayout ? 20 : 22; const buttonPadding = isCompactLayout ? 'p-2' : 'p-2.5'; const controlsGap = isCompactLayout ? 'gap-2' : 'gap-3'; const textSize = isCompactLayout ? 'text-xs' : 'text-sm'; const controlsPadding = isCompactLayout ? 'px-3 pb-3' : 'px-4 pb-4'; return (
{isCompactLayout ? ( ) : ( )}
); }