import React from 'react'; import { Tooltip, Zoom } from '@mui/material'; import './Pokemon.css'; import * as pokeTypeAsset from './assets'; import { colorTypeGradients } from './utils'; export interface PokemonProps { name: string; number: number; image: string; types: string[]; } export function formatNumber(num: number) { return '#' + num.toString().padStart(3, '0'); } function findPokeTypeAsset(pokeType: string) { switch (pokeType) { case 'normal': return pokeTypeAsset.pokeType_normal; case 'fire': return pokeTypeAsset.pokeType_fire; case 'water': return pokeTypeAsset.pokeType_water; case 'electric': return pokeTypeAsset.pokeType_electric; case 'grass': return pokeTypeAsset.pokeType_grass; case 'ice': return pokeTypeAsset.pokeType_ice; case 'fighting': return pokeTypeAsset.pokeType_fighting; case 'poison': return pokeTypeAsset.pokeType_poison; case 'ground': return pokeTypeAsset.pokeType_ground; case 'flying': return pokeTypeAsset.pokeType_flying; case 'psychic': return pokeTypeAsset.pokeType_psychic; case 'bug': return pokeTypeAsset.pokeType_bug; case 'rock': return pokeTypeAsset.pokeType_rock; case 'ghost': return pokeTypeAsset.pokeType_ghost; case 'dragon': return pokeTypeAsset.pokeType_dragon; case 'dark': return pokeTypeAsset.pokeType_dark; case 'steel': return pokeTypeAsset.pokeType_steel; case 'fairy': return pokeTypeAsset.pokeType_fairy; default: return pokeTypeAsset.pokeType_normal; } } export default function Pokemon({ name, number, image, types }: PokemonProps) { let finalColor; if (types.length === 2) { finalColor = colorTypeGradients(types[0], types[1], types.length); } else { finalColor = colorTypeGradients(types[0], types[0], types.length); } return (
{formatNumber(number)}
{name}

{name}

{types.map(type => (
{type}
))}
); }