import { useState, useEffect } from "react"; import { format } from "date-fns"; import { getWeather, getForecast, getRandomImage } from "./api"; export default function Dashboard() { const [time, setTime] = useState(new Date()); const [weather, setWeather] = useState(null); const [forecast, setForecast] = useState([]); const [bgImage, setBgImage] = useState(""); useEffect(() => { const interval = setInterval(() => setTime(new Date()), 1000); fetchWeatherData(); return () => clearInterval(interval); }, []); async function fetchWeatherData() { try { const weatherData = await getWeather(); setWeather(weatherData); const forecastData = await getForecast(); setForecast(forecastData); const imageUrl = await getRandomImage(weatherData.description); setBgImage(imageUrl); } catch (error) { console.error("Error fetching weather data:", error); } } return (
{format(time, "EEEE, MMM d")}
{weather && ({weather.temp}°C
{weather.description}
{day.date}: {day.temp}°C
))}