Repository navigation
Expand file tree
/
Copy pathscript.js
More file actions
101 lines (81 loc) · 2.75 KB
/
Copy pathscript.js
File metadata and controls
101 lines (81 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
async function collectWheatherData(city) {
const options = {
method: 'GET',
url: 'https://weather-by-api-ninjas.p.rapidapi.com/v1/weather',
params: { city: city },
headers: {
'X-RapidAPI-Key': '8cc2b2f165msh5cd6e3ba9c00677p1ab7b6jsn9f4a7a354a14',
'X-RapidAPI-Host': 'weather-by-api-ninjas.p.rapidapi.com'
}
};
let data;
try {
const response = await axios.request(options);
data = response.data;
} catch (error) {
console.error(error);
}
return data;
}
submit.addEventListener("click", async () => {
const data = await collectWheatherData(city.value)
if(data!=''){
city_name.innerHTML = city.value;
localStorage.setItem('recent_city', city.value)
humidity.innerHTML = data.humidity;
max_temp.innerHTML = data.max_temp
min_temp.innerHTML = data.min_temp
temp.innerHTML = `${data.temp}<span>°c</span>`
city.value = '';
}
})
btn_favorite.addEventListener("click", () => {
if (localStorage.getItem('recent_city') != '') {
const recent_city = localStorage.getItem('recent_city')
localStorage.setItem('recent_city', '')
let fav_cities = JSON.parse(localStorage.getItem('fav_cities'))
const val = fav_cities.find((ele) => ele === recent_city)
console.log(val)
if (val === undefined) {
fav_cities.push(recent_city)
localStorage.setItem('fav_cities', JSON.stringify(fav_cities))
fav_cities = JSON.parse(localStorage.getItem('fav_cities'))
table_body.innerHTML = "";
fav_cities.forEach(async (ele) => {
let data = await collectWheatherData(ele)
addRow(ele, data);
})
}
}
})
function addRow(city, element) {
var row = table_body.insertRow(0)
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = `<span style="font-weight:500">${city}</span>`
cell2.innerHTML = element.humidity
cell3.innerHTML = element.max_temp;
cell4.innerHTML = element.temp
cell5.innerHTML = element.min_temp
}
btn_favorite_clear.addEventListener("click", () => {
localStorage.clear('fav_cities');
localStorage.setItem('fav_cities', "[]")
console.log(localStorage)
table_body.innerHTML = ""
})
function onPageLoad(){
fav_cities = JSON.parse(localStorage.getItem('fav_cities'))
table_body.innerHTML = "";
fav_cities.forEach(async (ele) => {
let data = await collectWheatherData(ele)
addRow(ele, data);
})
}
window.onload=()=>{
onPageLoad();
console.log("completed")
}