import React, { useEffect, useRef, useState } from 'react' import { usePlayerContext } from '../../contexts/PlayerContext' import { SpeedIcon, SubtitlesIcon, CheckIcon, AudioIcon } from '../../icons' import type { AudioTrack } from '../../types' import './SettingsMenu.css' interface SettingsMenuProps { subtitles?: Array<{ src: string; lang: string; label: string }> audioTracks?: AudioTrack[] } type MenuView = 'main' | 'speed' | 'subtitles' | 'audio' export const SettingsMenu: React.FC = ({ subtitles = [], audioTracks = [] }) => { const { uiState, videoState, settings, setPlaybackRate, setSubtitle, setAudioTrack, toggleSettings } = usePlayerContext() const menuRef = useRef(null) const [currentView, setCurrentView] = useState('main') const playbackRates = [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2] // Close menu when clicking outside useEffect(() => { if (!uiState.settingsOpen) return const handleClickOutside = (e: MouseEvent) => { if (menuRef.current && !menuRef.current.contains(e.target as Node)) { toggleSettings() setCurrentView('main') } } document.addEventListener('mousedown', handleClickOutside) return () => document.removeEventListener('mousedown', handleClickOutside) }, [uiState.settingsOpen, toggleSettings]) // Reset to main view when menu closes useEffect(() => { if (!uiState.settingsOpen) { setCurrentView('main') } }, [uiState.settingsOpen]) const goBack = () => { setCurrentView('main') } if (!uiState.settingsOpen) return null return (
{/* Main Menu */} {currentView === 'main' && ( <>

Ayarlar

{audioTracks.length > 0 && ( )}
)} {/* Speed Submenu */} {currentView === 'speed' && ( <>

Oynatma Hızı

{playbackRates.map((rate) => ( ))}
)} {/* Subtitles Submenu */} {currentView === 'subtitles' && ( <>

Altyazı

{subtitles.length > 0 ? ( subtitles.map((subtitle) => ( )) ) : (
Altyazı mevcut değil
)}
)} {/* Audio Submenu */} {currentView === 'audio' && ( <>

Ses

{audioTracks.map((track) => ( ))}
)}
) }