local-weather/components/WeatherNow.tsx

33 lines
840 B
TypeScript
Raw Normal View History

"use client";
2024-05-04 21:04:30 +00:00
import { getForecast } from "@/app/actions";
import Temperature from "./Temperature";
import { Forecast, coordType } from "@/types/types";
import { useContext, useEffect, useState } from "react";
import { defaultForecast } from "@/app/defaultState";
import { LocationContext } from "@/app/page";
2024-05-04 21:04:30 +00:00
export default function WeatherNow() {
const { geoLocation } = useContext(LocationContext)
const [weather, setWeather] = useState<Forecast>(defaultForecast);
useEffect(() => {
let mounted = true;
getForecast(geoLocation).then((data) => {
if (mounted) {
setWeather(data);
}
});
return () => {
mounted = false;
};
}, [geoLocation]);
2024-05-04 21:04:30 +00:00
return (
<>
2024-05-07 19:18:51 +00:00
<h1>Here is the current weather in {weather.name}</h1>
<Temperature tempInfo={weather?.main} />
</>
2024-05-04 21:04:30 +00:00
);
}