· 5 years ago · Dec 02, 2020, 08:14 PM
1import React, { useState } from 'react';
2
3const api = {
4 key: "804fe71a828c0f82b2aeff767f210253",
5 base: "http://api.openweathermap.org/data/2.5/",
6}
7
8function App() {
9
10 const [query, setQuery] = useState('');
11 const [weather, setWeather] = useState({});
12
13 const search = evt => {
14 if (evt.key === "Enter" ) {
15 fetch(`${api.base}weather?q=${query}&units=metric&APPID=${api.key}`)
16 .then(res => res.json())
17 .then(result => {
18 setQuery('');
19 setWeather(result);
20 console.log(result);
21 });
22 }
23 }
24
25
26
27 const dateBuilder = (d) => {
28 let months = ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"]
29 let days = ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturdiena", "Piektdiena", "Sestdiena"];
30
31 let day = days[d.getDay()];
32 let date = d.getDate();
33 let month = months[d.getMonth()];
34 let year = d.getFullYear();
35
36 return `${day}, ${date}. ${month} ${year}`
37 }
38
39 return (
40 <div className={
41 (typeof weather.main != "undefined")
42 ? ((weather.main.temp > 16)
43 ? 'app warm'
44 : 'app')
45 : 'app'}>
46 <main>
47 <div className="search-box">
48 <input
49 type="text"
50 className="search-bar"
51 placeholder="Search..."
52 onChange={e => setQuery(e.target.value)}
53 value={query}
54 onKeyPress={search}
55 />
56 </div>
57 {(typeof weather.main != "undefined") ? (
58 <div>
59 <div className="location-box">
60 <div className="location">{weather.name}, {weather.sys.country}</div>
61 <div className="date">{dateBuilder(new Date())}</div>
62 </div>
63
64 <div className="weather-box">
65 <div className="temp">
66 {Math.round(weather.main.temp)}°c
67 </div>
68 <div className="weather">{weather.weather[0].main}</div>
69 </div>
70 </div>
71 ) : ('')}
72 </main>
73 </div>
74 );
75}
76
77export default App;
78