From 8d0e4e9115d46615798ce5613894158bc0752fe3 Mon Sep 17 00:00:00 2001 From: xyvs Date: Sat, 7 Feb 2026 16:54:28 -0600 Subject: [PATCH] feature: new pokemon pages --- src/pages/Pokedex.vue | 16 +-- src/pages/PokemonColors.vue | 200 +++++++++++++++++++++++++++ src/pages/PokemonForms.vue | 175 +++++++++++++++++++++++ src/pages/PokemonLocations.vue | 185 +++++++++++++++++++++++++ src/pages/PokemonShapes.vue | 243 ++++++++++++++++++++++++++++++++ src/pages/PokemonSpecies.vue | 246 +++++++++++++++++++++++++++++++++ src/router.js | 10 ++ 7 files changed, 1066 insertions(+), 9 deletions(-) create mode 100644 src/pages/PokemonColors.vue create mode 100644 src/pages/PokemonForms.vue create mode 100644 src/pages/PokemonLocations.vue create mode 100644 src/pages/PokemonShapes.vue create mode 100644 src/pages/PokemonSpecies.vue diff --git a/src/pages/Pokedex.vue b/src/pages/Pokedex.vue index d374ba4..479bd0b 100644 --- a/src/pages/Pokedex.vue +++ b/src/pages/Pokedex.vue @@ -83,10 +83,6 @@ function getPokemonData() { }) } -function changeTheme() { - isDark.value = !isDark.value -} - const pokemonColors = computed(() => { if (isDark.value) { return { @@ -110,12 +106,14 @@ watch(() => route.params.id, () => { onMounted(() => { appState.clearPageDisplay() + const pokemonId = route.params.id + setButtonActions([ - { buttonNumber: 1, label: 'LIST', action: () => router.push('/') }, - { buttonNumber: 2, label: 'STATS', action: () => console.log('Stats view - TBA') }, - { buttonNumber: 3, label: 'EVOL', action: () => console.log('Evolution chain - TBA') }, - { buttonNumber: 4, label: 'MOVES', action: () => console.log('Moves list - TBA') }, - { buttonNumber: 5, label: 'THEME', action: changeTheme } + { buttonNumber: 1, label: 'LOCA', action: () => router.push(`/pokemon/${pokemonId}/locations`) }, + { buttonNumber: 2, label: 'COLOR', action: () => router.push(`/pokemon/${pokemonId}/colors`) }, + { buttonNumber: 3, label: 'FORMS', action: () => router.push(`/pokemon/${pokemonId}/forms`) }, + { buttonNumber: 4, label: 'SHAPE', action: () => router.push(`/pokemon/${pokemonId}/shapes`) }, + { buttonNumber: 5, label: 'SPEC', action: () => router.push(`/pokemon/${pokemonId}/species`) } ]) }) diff --git a/src/pages/PokemonColors.vue b/src/pages/PokemonColors.vue new file mode 100644 index 0000000..c64a260 --- /dev/null +++ b/src/pages/PokemonColors.vue @@ -0,0 +1,200 @@ + + + diff --git a/src/pages/PokemonForms.vue b/src/pages/PokemonForms.vue new file mode 100644 index 0000000..341ddf7 --- /dev/null +++ b/src/pages/PokemonForms.vue @@ -0,0 +1,175 @@ + + + diff --git a/src/pages/PokemonLocations.vue b/src/pages/PokemonLocations.vue new file mode 100644 index 0000000..66cc1d5 --- /dev/null +++ b/src/pages/PokemonLocations.vue @@ -0,0 +1,185 @@ + + + diff --git a/src/pages/PokemonShapes.vue b/src/pages/PokemonShapes.vue new file mode 100644 index 0000000..ae63fa6 --- /dev/null +++ b/src/pages/PokemonShapes.vue @@ -0,0 +1,243 @@ + + + diff --git a/src/pages/PokemonSpecies.vue b/src/pages/PokemonSpecies.vue new file mode 100644 index 0000000..9ce6e03 --- /dev/null +++ b/src/pages/PokemonSpecies.vue @@ -0,0 +1,246 @@ + + + diff --git a/src/router.js b/src/router.js index 18a4dba..7119d47 100644 --- a/src/router.js +++ b/src/router.js @@ -2,6 +2,11 @@ import { createRouter, createWebHistory } from "vue-router"; import Home from "./pages/Home.vue"; import Pokedex from "./pages/Pokedex.vue"; import Pokemon from "./pages/Pokemon.vue"; +import PokemonLocations from "./pages/PokemonLocations.vue"; +import PokemonColors from "./pages/PokemonColors.vue"; +import PokemonForms from "./pages/PokemonForms.vue"; +import PokemonShapes from "./pages/PokemonShapes.vue"; +import PokemonSpecies from "./pages/PokemonSpecies.vue"; import Settings from "./pages/Settings.vue"; import Maps from "./pages/Maps.vue"; import Games from "./pages/Games.vue"; @@ -11,6 +16,11 @@ import NotFound from "./pages/NotFound.vue"; const routes = [ { path: "/", component: Home, name: "home" }, { path: "/pokemon/:id", component: Pokedex, name: "pokemon" }, + { path: "/pokemon/:id/locations", component: PokemonLocations, name: "pokemon-locations" }, + { path: "/pokemon/:id/colors", component: PokemonColors, name: "pokemon-colors" }, + { path: "/pokemon/:id/forms", component: PokemonForms, name: "pokemon-forms" }, + { path: "/pokemon/:id/shapes", component: PokemonShapes, name: "pokemon-shapes" }, + { path: "/pokemon/:id/species", component: PokemonSpecies, name: "pokemon-species" }, { path: "/pokemon", component: Pokemon, name: "pokemon-list" }, { path: "/settings", component: Settings, name: "settings" }, { path: "/maps", component: Maps, name: "maps" },