import React, { useState, useEffect } from 'react'; import { ChevronDown, AlertCircle, Search } from 'lucide-react'; const CurrencySelect = ({ selectedCurrency, setSelectedCurrency, SUPPORTED_CURRENCIES, error }) => { const [isOpen, setIsOpen] = useState(false); const [isMobile, setIsMobile] = useState(false); const [selectedCurrencyName, setSelectedCurrencyName] = useState(''); const [searchTerm, setSearchTerm] = useState(''); const [filteredCurrencies, setFilteredCurrencies] = useState([]); useEffect(() => { const savedCurrency = localStorage.getItem('selectedCurrency'); if (savedCurrency && SUPPORTED_CURRENCIES[savedCurrency]) { setSelectedCurrency(savedCurrency); } setSelectedCurrencyName(SUPPORTED_CURRENCIES[selectedCurrency]?.country || ''); const checkMobile = () => { setIsMobile(window.innerWidth < 768); }; checkMobile(); window.addEventListener('resize', checkMobile); return () => window.removeEventListener('resize', checkMobile); }, [SUPPORTED_CURRENCIES, setSelectedCurrency]); useEffect(() => { setSelectedCurrencyName(SUPPORTED_CURRENCIES[selectedCurrency]?.country || ''); }, [selectedCurrency, SUPPORTED_CURRENCIES]); useEffect(() => { if (isOpen) { const filtered = Object.entries(SUPPORTED_CURRENCIES).filter(([code, details]) => { const searchLower = searchTerm.toLowerCase(); return ( code.toLowerCase().includes(searchLower) || details.name.toLowerCase().includes(searchLower) || details.country.toLowerCase().includes(searchLower) ); }); setFilteredCurrencies(filtered); } }, [searchTerm, SUPPORTED_CURRENCIES, isOpen]); const handleCurrencyChange = (code) => { localStorage.setItem('selectedCurrency', code); setSelectedCurrency(code); setSelectedCurrencyName(SUPPORTED_CURRENCIES[code]?.country || ''); setIsOpen(false); setSearchTerm(''); }; return (