import React from "react"; import { useState } from "react"; import { fetchWeather } from "../utils/apiFunc"; import { toast } from "react-toastify"; import WeatherData from "./WeatherData"; import { useEffect } from "react"; import { X } from "lucide-react"; const WeatherCard: React.FC = () => { const [city, setCity] = useState(""); const [weatherData, setWeatherData] = useState(false); const getUnit = () => localStorage.getItem("unit") || "metric"; const handleCityChange = (event: React.ChangeEvent) => { setCity(event.target.value); }; const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); setWeatherData(false); toast .promise(fetchWeather(city, getUnit()), { pending: "Fetching weather data...", success: "Weather data loaded successfully!", error: "Failed to load weather data. Please check your entered city name. (Error: x4040)", }) .then(() => { if (localStorage.getItem("weather")) { setWeatherData(true); } else { setWeatherData(false); } }); }; // Check if weather data is already in localStorage - when entering the page via URL/reload useEffect(() => { if (localStorage.getItem("weather")) { setWeatherData(true); } else { setWeatherData(false); } }, []); return (

Weather

Current weather will be displayed here.

You don't need an API Key!

{weatherData && ( )}
{weatherData && }
); }; export default WeatherCard;