-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
66 lines (54 loc) · 1.6 KB
/
main.js
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
const poke_container = document.querySelector("#poke_container");
const pokemons_number = 150;
const colors = {
fire: "#e77a4a",
grass: "#DEFDE0",
electric: "#FCF7DE",
water: "#DEF3FD",
ground: "#f4e7da",
rock: "#d5d5d4",
fairy: "#fceaff",
poison: "#8d8393",
bug: "#f8d5a3",
dragon: "#97b3e6",
psychic: "#eaeda1",
flying: "#F5F5F5",
fighting: "#E6E0D4",
normal: "#F5F5F5",
};
const main_types = Object.keys(colors);
const fetchPokemons = async () => {
for (let i = 1; i <= pokemons_number; i++) {
await getPokemon(i);
}
};
const getPokemon = async (id) => {
const url = `https://pokeapi.co/api/v2/pokemon/${id}`,
res = await fetch(url),
pokemon = await res.json();
createPokemonCard(pokemon);
};
fetchPokemons();
function createPokemonCard(pokemon) {
const pokemonEl = document.createElement("div");
pokemonEl.classList.add("pokemon");
const poke_types = pokemon.types.map((type) => type.type.name);
const type = main_types.find((type) => poke_types.indexOf(type) > -1);
const name = pokemon.name[0].toUpperCase() + pokemon.name.slice(1);
const color = colors[type];
pokemonEl.style.backgroundColor = color;
const pokeInnerHTML = `
<div class="img-container">
<img src="https://pokeres.bastionbot.org/images/pokemon/${
pokemon.id
}.png" />
</div>
<div class="info">
<span class="number">#${pokemon.id.toString().padStart(3, "0")}</span>
<h3 class="name">${name}</h3>
<small class="type">Type: <span>${type}</span></small>
</div>
`;
pokemonEl.innerHTML = pokeInnerHTML;
poke_container.appendChild(pokemonEl);
}