Repository navigation
Expand file tree
/
Copy pathmain.js
More file actions
69 lines (64 loc) · 2.24 KB
/
Copy pathmain.js
File metadata and controls
69 lines (64 loc) · 2.24 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
const searchForm = document.getElementById('pokemon-search');
const inputField = document.getElementById('name-input');
const nameScreen = document.getElementById('name-screen');
const imageScreen = document.getElementById('main-screen');
const aboutScreen = document.getElementById('about-screen');
const typeScreen = document.getElementById('type-screen');
const idScreen = document.getElementById('id-screen');
const resultStatus = document.getElementById('result-status');
const rightButton = document.querySelector('.right-nav-button');
const leftButton = document.querySelector('.left-nav-button');
let current = 1;
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker
.register('/serviceWorker.js')
.then((res) => console.log('service worker registered'))
.catch((err) => console.log('service worker not registered', err));
});
}
const getPokemonData = (pokemon) => {
if (!pokemon) {
return;
}
fetch(`https://pokeapi.co/api/v2/pokemon/${pokemon}`)
.then((response) => response.json())
.then((data) => {
if (!data.id) {
return;
}
current = data.id;
let id = ('00' + data.id).slice(-3);
imageScreen.src = `https://assets.pokemon.com/assets/cms2/img/pokedex/full/${id}.png`;
imageScreen.alt = data.name;
nameScreen.textContent = data.name;
typeScreen.textContent = data.types[0].type.name;
idScreen.textContent = `#${data.id}`;
aboutScreen.textContent = `Height: ${data.height * 10}cm Weight: ${data.weight / 10}kg`;
resultStatus.textContent = `${data.name}, Pokédex number ${data.id}`;
inputField.value = '';
});
};
searchForm.addEventListener('submit', (event) => {
event.preventDefault();
getPokemonData(inputField.value);
});
rightButton.addEventListener('click', () => {
getPokemonData(current + 1);
});
leftButton.addEventListener('click', () => {
if (current <= 1) {
return;
}
getPokemonData(current - 1);
});
document.addEventListener('keydown', (event) => {
if (event.target.matches('input, textarea, [contenteditable]')) {
return;
}
if (event.key === 'ArrowRight') {
rightButton.click();
} else if (event.key === 'ArrowLeft') {
leftButton.click();
}
});