import React from 'react'; import classNames from 'classnames'; import { IPokemon } from 'app/models/Pokemon'; import { formatDexNumber, formatForm, Forms } from 'app/utils/formatter'; import { StatDisplay } from './StatDisplay'; import { TypeIndicator, TypeTheme } from './TypeIndicator'; import * as PVPogoProtos from 'common/models/PvPogoProtos'; import * as styles from 'app/components/PokemonExplorer/styles/PokemonDisplay.scss'; export interface IPokemonDisplay { leaguePokemon : IPokemon; isHighlighted : boolean; } export class PokemonDisplay extends React.Component { public render() { const { leaguePokemon, isHighlighted } = this.props; const dex = formatDexNumber(leaguePokemon.dex); const pokemonInfoLeftColumnCss = classNames( styles.pokemonInfoLeftColumn, { [styles.highlight]: isHighlighted } ); const containerCss = classNames( 'nes-container', 'with-title', ); const containerTitleCss = classNames( 'title', ); const baseStatsCss = classNames( styles.pokemonBaseStats, containerCss, ); const pokemonIconCss = classNames( 'icon', 'pixel', 'sprite', `pokemon-${dex}`, { 'normal-form': Forms.normal.indexOf(leaguePokemon.form) > -1, 'alola-form': Forms.alola.indexOf(leaguePokemon.form) > -1, 'plant-form': Forms.plant.indexOf(leaguePokemon.form) > -1, 'sandy-form': Forms.sandy.indexOf(leaguePokemon.form) > -1, 'trash-form': Forms.trash.indexOf(leaguePokemon.form) > -1, 'west-sea-form': Forms.westSea.indexOf(leaguePokemon.form) > -1, 'east-sea-form': Forms.eastSea.indexOf(leaguePokemon.form) > -1, 'frost-form': Forms.frost.indexOf(leaguePokemon.form) > -1, 'fan-form': Forms.fan.indexOf(leaguePokemon.form) > -1, 'mow-form': Forms.mow.indexOf(leaguePokemon.form) > -1, 'wash-form': Forms.wash.indexOf(leaguePokemon.form) > -1, 'heat-form': Forms.heat.indexOf(leaguePokemon.form) > -1, 'sky-form': Forms.sky.indexOf(leaguePokemon.form) > -1, 'land-form': Forms.land.indexOf(leaguePokemon.form) > -1, 'overcast-form': Forms.overcast.indexOf(leaguePokemon.form) > -1, 'sunny-form': Forms.sunny.indexOf(leaguePokemon.form) > -1, 'rainy-form': Forms.rainy.indexOf(leaguePokemon.form) > -1, 'snowy-form': Forms.snowy.indexOf(leaguePokemon.form) > -1, 'attack-form': Forms.attack.indexOf(leaguePokemon.form) > -1, 'defense-form': Forms.defense.indexOf(leaguePokemon.form) > -1, 'speed-form': Forms.speed.indexOf(leaguePokemon.form) > -1, 'altered-form': Forms.altered.indexOf(leaguePokemon.form) > -1, 'origin-form': Forms.origin.indexOf(leaguePokemon.form) > -1, 'fighting-form': Forms.fighting.indexOf(leaguePokemon.form) > -1, 'flying-form': Forms.flying.indexOf(leaguePokemon.form) > -1, 'poison-form': Forms.poison.indexOf(leaguePokemon.form) > -1, 'ground-form': Forms.ground.indexOf(leaguePokemon.form) > -1, 'rock-form': Forms.rock.indexOf(leaguePokemon.form) > -1, 'bug-form': Forms.bug.indexOf(leaguePokemon.form) > -1, 'ghost-form': Forms.ghost.indexOf(leaguePokemon.form) > -1, 'steel-form': Forms.steel.indexOf(leaguePokemon.form) > -1, 'fire-form': Forms.fire.indexOf(leaguePokemon.form) > -1, 'water-form': Forms.water.indexOf(leaguePokemon.form) > -1, 'grass-form': Forms.grass.indexOf(leaguePokemon.form) > -1, 'electric-form': Forms.electric.indexOf(leaguePokemon.form) > -1, 'psychic-form': Forms.psychic.indexOf(leaguePokemon.form) > -1, 'ice-form': Forms.ice.indexOf(leaguePokemon.form) > -1, 'dragon-form': Forms.dragon.indexOf(leaguePokemon.form) > -1, 'dark-form': Forms.dark.indexOf(leaguePokemon.form) > -1, 'fairy-form': Forms.fairy.indexOf(leaguePokemon.form) > -1, }, ); const type1 = ; let type2 : JSX.Element | null = null; if (leaguePokemon.types.type2) { type2 = ; } return (

No.{ dex }

{ type1 } { type2 }
{ leaguePokemon.form !== PVPogoProtos.PokemonForm.FORM_UNSET &&
{ formatForm(leaguePokemon.form) } Form
}

{ leaguePokemon.name }

{ leaguePokemon.genus }

Base Stats

); } }