diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0d1f440 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "T26-Project-2", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/project2/src/App.tsx b/project2/src/App.tsx index b264960..aa03af9 100644 --- a/project2/src/App.tsx +++ b/project2/src/App.tsx @@ -1,4 +1,5 @@ -import type { Pokemon, Ability, Type } from '../types/pokemon'; +import type { Pokemon, Ability, Type } from './types/pokemon'; +import { useState } from 'react'; // Mocking a base Abilty. const mockAbility: Ability = { @@ -158,6 +159,17 @@ const mockeMons: Pokemon[] = [ ]; function App() { + + const [searchTerm, setSearchTerm] = useState(''); + const [selectedPokemon, setSelectedPokemon] = useState(null); + const filteredPokemon = mockeMons.filter((pokemon) => /*true betyr behold og false betyr fjern*/ + pokemon.name.toLocaleLowerCase().includes(searchTerm.trim().toLocaleLowerCase())); + /*trim fjerner whitespace i starten og slutten av stringen PEDER du kan si ifra om du mener dette kan gjøres lettere*/ + + const handlePokemonClick = (pokemon: Pokemon) => { + setSelectedPokemon(pokemon); + }; + return ( <>
@@ -166,20 +178,38 @@ function App() { type="search" placeholder="Search" aria-label="Search pokemon" + value={searchTerm} + onChange={(e) => setSearchTerm(e.target.value)} >
-
+
+ {selectedPokemon ? ( +
+

{selectedPokemon.name}

+

#{String(selectedPokemon.id).padStart(4, '0')}

+

Attack: {selectedPokemon.attack}

+

Defence: {selectedPokemon.defence}

+

Special Attack: {selectedPokemon.special_attack}

+

Special Defence: {selectedPokemon.special_defence}

+

Speed: {selectedPokemon.speed}

+

HP: {selectedPokemon.hp}

+ +
+ ) : (
    - {mockeMons.map((pokemon) => ( + {filteredPokemon.map((pokemon) => (
  • +
  • ))}
+ )}