import React from 'react'; import { CheckIcon } from './Icons'; import { UserSettings, Language } from '../types'; import { THEMES } from '../constants'; import { useTranslation } from '../i18n'; interface ThemeSettingsProps { settings: UserSettings; onUpdateSettings: (newSettings: UserSettings) => void; } const ThemeSettings: React.FC = ({ settings, onUpdateSettings }) => { const { t } = useTranslation(); const toggleSeconds = () => { onUpdateSettings({ ...settings, showSeconds: !settings.showSeconds }); }; const toggleMaskBlur = () => { onUpdateSettings({ ...settings, enableMaskBlur: !settings.enableMaskBlur }); }; const toggle24Hour = () => { onUpdateSettings({ ...settings, use24HourFormat: !settings.use24HourFormat }); }; const toggleSearchHistory = () => { onUpdateSettings({ ...settings, enableSearchHistory: !settings.enableSearchHistory }); }; const handleBlurChange = (e: React.ChangeEvent) => { onUpdateSettings({ ...settings, backgroundBlur: parseInt(e.target.value) }); }; const handleOpacityChange = (e: React.ChangeEvent) => { onUpdateSettings({ ...settings, searchOpacity: parseFloat(e.target.value) }); }; const handleThemeChange = (colorHex: string) => { onUpdateSettings({ ...settings, themeColor: colorHex }); }; const handleLanguageChange = (lang: Language) => { onUpdateSettings({ ...settings, language: lang }); }; return (
{/* Language Selection */}
{t.language}
{/* Theme color */}
{t.themeColor}
{THEMES.map((theme) => ( ))}
{/* Toggle settings */}
{t.showSeconds}
{t.use24HourFormat}
{t.maskBlurEffect}
{t.searchHistory}
{/* Background blur slider */}
{t.backgroundBlur} {settings.backgroundBlur}px
{/* Search box opacity slider */}
{t.searchBoxOpacity} {Math.round(settings.searchOpacity * 100)}%
); }; export default ThemeSettings;