import React, { useState, useRef, useEffect } from 'react'; import { useTheme, countryThemes, CountryTheme } from '../contexts/ThemeContext'; import '../styles/ThemeSwitcher.css'; const ThemeSwitcher: React.FC = () => { const { currentTheme, themeConfig, setTheme, availableThemes } = useTheme(); const [isOpen, setIsOpen] = useState(false); const dropdownRef = useRef(null); // Close dropdown when clicking outside useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); const handleThemeSelect = (theme: CountryTheme) => { setTheme(theme); setIsOpen(false); }; return (
{isOpen && (
{availableThemes.map((theme) => { const configForTheme = countryThemes[theme]; return ( ); })}
)}
); }; export default ThemeSwitcher;