import React, { useState } from 'react'; const LocationSelector = ({ onLocationChange, currentLocation, isLoading, isNight }) => { const [searchQuery, setSearchQuery] = useState(''); const [isSearching, setIsSearching] = useState(false); const handleSearch = async (e) => { e.preventDefault(); if (searchQuery.trim() && !isLoading) { setIsSearching(true); await onLocationChange(searchQuery.trim()); setIsSearching(false); setSearchQuery(''); } }; const handleCurrentLocation = async () => { if (!isLoading) { setIsSearching(true); try { const position = await new Promise((resolve, reject) => { navigator.geolocation.getCurrentPosition(resolve, reject, { enableHighAccuracy: true, timeout: 10000, maximumAge: 600000 }); }); const { latitude, longitude } = position.coords; await onLocationChange(`${latitude},${longitude}`); } catch (error) { console.error('Error getting current location:', error); alert('Unable to get your current location. Please enter a city name manually.'); } setIsSearching(false); } }; return (
setSearchQuery(e.target.value)} placeholder="Search..." className={`bg-transparent px-3 py-1 ${isNight ? 'text-white placeholder-white/40' : 'text-black placeholder-black/40'} text-sm md:text-base font-light focus:outline-none w-32 md:w-48 tracking-wide`} disabled={isLoading || isSearching} />
); }; export default LocationSelector;