wermvasconcelos / pokedex

https://pokedex-three-smoky.vercel.app
MIT License
0 stars 0 forks source link

Quantidade de Pokémons não condizente com a quantidade na pokeapi #2

Open Luisricardo2825 opened 9 months ago

Luisricardo2825 commented 9 months ago

Dentro do código da pagina Home, existe os seguintes trechos:

 const endIndex = Math.min(startIndex + itemsPerPage - 1, 1010);
...
 const totalPageCount = Math.ceil(1010 / itemsPerPage);

que esta desconsiderando o campo "count" retornado na pokeapi. O correto seria considerar o contador da própria API, pois alguns pokemons ficaram de fora, como os Gigantamax.

Sugiro também a utilização do hook "useMemo" , pois em alguns pontos do código estão acontecendo renderizações desnecessárias, como na propia linha supracitada e como no trecho:

const itemsPerPage = 20;

Onde o melhor cenário seria:

const itemsPerPage = useMemo(()=>20,[]);// Ou fora do componente 
...
const totalPageCount = useMemo(()=>Math.ceil(1010 / itemsPerPage),[itemsPerPage]); // "itemsPerPage" é usado, consequentemente é uma dependência, onde caso seja alterado irá influenciar o "totalPageCount", fazendo com que o valor seja atualizado e consequentemente uma nova renderização seja feita
wermvasconcelos commented 9 months ago

Olá, Ricardo, já agradeço pela sua contribuição no repositório. Sobre o hook "useMemo" , desconhecia esse hook, estudei sobre para compreender a sua funcionalidade e apliquei da forma que você instruiu, alterações realizadas no commit: e08922f2d8948d820b47d243d5674f8e96c48cf2

Em relação a quantidade de pokémons, esse "count" retornado na pokeapi é a quantidade de espécies de pokémons + suas variações, acontece que, se eu utilizar essa quantidade retornada o loop de requisições será "quebrado". Pois, por exemplo, o pokémon referente ao número 1017 tem sua requisição feita pelo ID 10001. image

Essas variações são reservadas no ID 10001 a diante, e pretendo incrementa-las em uma feature futura onde será possível ver as variações do pokémon em seu detalhamento.

Mas concordo que a quantidade 1010 está incorreta, a correta seria 1017, essa quantidade é identificada através do "count" retornada no endpoint "pokemon-species/" da pokeapi. Apliquei o ajuste referente a quantidade de espécies de pokémons no commit:

Ambas as alterações já estão no deploy feito na vercel: 6b5710b49df0aa157456af5d1cc3bd66f975f2a4

https://pokedex-wermvasconcelos-projects.vercel.app

Fico no aguardo de um retorno seu sobre os ajustes feitos :)

Luisricardo2825 commented 9 months ago

@wermvasconcelos Entendi, mas a API permite a utilização do nome do Pokémon ao invés do ID e caso seja necessário o ID é possível captura-lo após a consulta via nome do Pokémon:

Endpoint de exemplo:

https://pokeapi.co/api/v2/pokemon/deoxys-attack

image