import React, { useState, useEffect, useRef } from 'react' import { Palette, Sun, Moon, Monitor, ChevronDown, Check } from 'lucide-react' import { SUPPORTED_LANGUAGES, useTranslation } from '../../i18n' import { useSettingsStore } from '../../store/settingsStore' import { useToast } from '../shared/Toast' import Section from './Section' export default function DisplaySettingsTab(): React.ReactElement { const { settings, updateSetting } = useSettingsStore() const { t } = useTranslation() const toast = useToast() const [tempUnit, setTempUnit] = useState(settings.temperature_unit || 'celsius') const [langOpen, setLangOpen] = useState(false) const langDropdownRef = useRef(null) useEffect(() => { if (!langOpen) return const handler = (e: MouseEvent) => { if (langDropdownRef.current && !langDropdownRef.current.contains(e.target as Node)) setLangOpen(false) } document.addEventListener('mousedown', handler) return () => document.removeEventListener('mousedown', handler) }, [langOpen]) useEffect(() => { setTempUnit(settings.temperature_unit || 'celsius') }, [settings.temperature_unit]) return (
{/* Color Mode */}
{[ { value: 'light', label: t('settings.light'), icon: Sun }, { value: 'dark', label: t('settings.dark'), icon: Moon }, { value: 'auto', label: t('settings.auto'), icon: Monitor }, ].map(opt => { const current = settings.dark_mode const isActive = current === opt.value || (opt.value === 'light' && current === false) || (opt.value === 'dark' && current === true) return ( ) })}
{/* Language */}
{/* Desktop: Button grid */}
{SUPPORTED_LANGUAGES.map(opt => ( ))}
{/* Mobile: Custom dropdown */}
{(() => { const current = SUPPORTED_LANGUAGES.find(o => o.value === settings.language) || SUPPORTED_LANGUAGES[0] return ( ) })()} {langOpen && (
{SUPPORTED_LANGUAGES.map(opt => { const active = settings.language === opt.value return ( ) })}
)}
{/* Temperature */}
{[ { value: 'celsius', label: '°C Celsius' }, { value: 'fahrenheit', label: '°F Fahrenheit' }, ].map(opt => ( ))}
{/* Time Format */}
{[ { value: '24h', short: '24h', example: '14:30' }, { value: '12h', short: '12h', example: '2:30 PM' }, ].map(opt => ( ))}
{/* Route Calculation */}
{[ { value: true, label: t('settings.on') || 'On' }, { value: false, label: t('settings.off') || 'Off' }, ].map(opt => ( ))}
{/* Booking route labels */}
{[ { value: true, label: t('settings.on') || 'On' }, { value: false, label: t('settings.off') || 'Off' }, ].map(opt => ( ))}

{t('settings.bookingLabelsHint')}

{/* Blur Booking Codes */}
{[ { value: true, label: t('settings.on') || 'On' }, { value: false, label: t('settings.off') || 'Off' }, ].map(opt => ( ))}
) }