'use client'; import { useDesktopPlayerState } from './hooks/useDesktopPlayerState'; import { useDesktopPlayerLogic } from './hooks/useDesktopPlayerLogic'; import { useHLSPreloader } from './hooks/useHLSPreloader'; import { useHlsPlayer } from './hooks/useHlsPlayer'; import { DesktopControlsWrapper } from './desktop/DesktopControlsWrapper'; import { DesktopOverlayWrapper } from './desktop/DesktopOverlayWrapper'; interface DesktopVideoPlayerProps { src: string; poster?: string; onError?: (error: string) => void; onTimeUpdate?: (currentTime: number, duration: number) => void; initialTime?: number; shouldAutoPlay?: boolean; } export function DesktopVideoPlayer({ src, poster, onError, onTimeUpdate, initialTime = 0, shouldAutoPlay = false }: DesktopVideoPlayerProps) { const { refs, state } = useDesktopPlayerState(); const { currentTime } = state; // Preload HLS segments useHLSPreloader({ src, currentTime, videoRef: refs.videoRef, isLoading: state.isLoading }); // Initialize HLS Player useHlsPlayer({ videoRef: refs.videoRef, src, autoPlay: shouldAutoPlay }); const { videoRef, containerRef, } = refs; const { isPlaying, setShowControls, setIsLoading, } = state; const logic = useDesktopPlayerLogic({ src, initialTime, shouldAutoPlay, onError, onTimeUpdate, refs, state }); const { handleMouseMove, togglePlay, handlePlay, handlePause, handleTimeUpdateEvent, handleLoadedMetadata, handleVideoError, } = logic; return (