"use client"; import { getHourlyForecast } from "@/app/actions"; import Temperature from "./Temperature"; import { HourlyCardPropType, HourlyForecast, WeatherContextType } from "@/types/types"; import { createContext, useContext, useEffect, useState } from "react"; import { defaultHourlyForecast } from "@/app/defaultState"; import { LocationContext } from "@/app/page"; import WeatherHero from "./WeatherHero"; import HourlyCard from "./HourlyCard/HourlyCard"; export const WeatherContext = createContext({ weather: defaultHourlyForecast, setWeather: () => {}, // Default function, does nothing }); export default function WeatherNow() { const { geoLocation } = useContext(LocationContext); const [weather, setWeather] = useState(defaultHourlyForecast); const contextValue: WeatherContextType = { weather, setWeather, }; useEffect(() => { let mounted = true; getHourlyForecast(geoLocation).then((data) => { if (mounted) { setWeather(data); } }); return () => { mounted = false; }; }, [geoLocation]); return ( <>

Here is the current weather in {geoLocation.name}

{weather.hourly && weather.hourly.apparent_temperature.map((temp, index) => ( index < 12 && // Ensure we only render the first 12 hours ))}
); }