import { useState, useEffect } from "react"; import { MainCard } from "../components/MainCard"; import { ContentBox } from "../components/ContentBox"; import { Header } from "../components/Header"; import { DateAndTime } from "../components/DateAndTime"; import { Search } from "../components/Search"; import { MetricsBox } from "../components/MetricsBox"; import { UnitSwitch } from "../components/UnitSwitch"; import { LoadingScreen } from "../components/LoadingScreen"; import { ErrorScreen } from "../components/ErrorScreen"; import styles from "../styles/Home.module.css"; export const App = () => { const [cityInput, setCityInput] = useState("Riga"); const [triggerFetch, setTriggerFetch] = useState(true); const [weatherData, setWeatherData] = useState(); const [unitSystem, setUnitSystem] = useState("metric"); useEffect(() => { const getData = async () => { const res = await fetch("api/data", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ cityInput }), }); const data = await res.json(); setWeatherData({ ...data }); setCityInput(""); }; getData(); }, [triggerFetch]); const changeSystem = () => unitSystem == "metric" ? setUnitSystem("imperial") : setUnitSystem("metric"); return weatherData && !weatherData.message ? (
{ e.target.value = ""; e.target.placeholder = ""; }} onChange={(e) => setCityInput(e.target.value)} onKeyDown={(e) => { e.keyCode === 13 && setTriggerFetch(!triggerFetch); e.target.placeholder = "Search a city..."; }} />
) : weatherData && weatherData.message ? ( (e.target.value = "")} onChange={(e) => setCityInput(e.target.value)} onKeyDown={(e) => e.keyCode === 13 && setTriggerFetch(!triggerFetch)} /> ) : ( ); }; export default App;