diff --git a/.beans/nuzlocke-tracker-jrbc--fix-doubled-encounters-in-encountermodal.md b/.beans/nuzlocke-tracker-jrbc--fix-doubled-encounters-in-encountermodal.md new file mode 100644 index 0000000..fc2074f --- /dev/null +++ b/.beans/nuzlocke-tracker-jrbc--fix-doubled-encounters-in-encountermodal.md @@ -0,0 +1,11 @@ +--- +# nuzlocke-tracker-jrbc +title: Fix doubled encounters in EncounterModal +status: completed +type: bug +priority: normal +created_at: 2026-02-08T11:16:35Z +updated_at: 2026-02-08T11:17:25Z +--- + +EncounterModal calls useRoutePokemon without gameId, so route encounters for all games in the version group are returned. Pass gameId through from RunEncounters. \ No newline at end of file diff --git a/frontend/src/components/EncounterModal.tsx b/frontend/src/components/EncounterModal.tsx index a51b75c..fc385d8 100644 --- a/frontend/src/components/EncounterModal.tsx +++ b/frontend/src/components/EncounterModal.tsx @@ -14,6 +14,7 @@ import type { interface EncounterModalProps { route: Route + gameId: number existing?: EncounterDetail dupedPokemonIds?: Set onSubmit: (data: { @@ -78,6 +79,7 @@ function groupByMethod(pokemon: RouteEncounterDetail[]): { method: string; pokem export function EncounterModal({ route, + gameId, existing, dupedPokemonIds, onSubmit, @@ -87,6 +89,7 @@ export function EncounterModal({ }: EncounterModalProps) { const { data: routePokemon, isLoading: loadingPokemon } = useRoutePokemon( route.id, + gameId, ) const [selectedPokemon, setSelectedPokemon] = @@ -190,7 +193,7 @@ export function EncounterModal({ {loadingPokemon ? (
-
+
) : filteredPokemon && filteredPokemon.length > 0 ? ( <> diff --git a/frontend/src/components/ShinyEncounterModal.tsx b/frontend/src/components/ShinyEncounterModal.tsx index 53da18d..3427174 100644 --- a/frontend/src/components/ShinyEncounterModal.tsx +++ b/frontend/src/components/ShinyEncounterModal.tsx @@ -9,6 +9,7 @@ import type { Route, RouteEncounterDetail } from '../types' interface ShinyEncounterModalProps { routes: Route[] + gameId: number onSubmit: (data: { routeId: number pokemonId: number @@ -41,6 +42,7 @@ function groupByMethod(pokemon: RouteEncounterDetail[]): { method: string; pokem export function ShinyEncounterModal({ routes, + gameId, onSubmit, onClose, isPending, @@ -48,6 +50,7 @@ export function ShinyEncounterModal({ const [selectedRouteId, setSelectedRouteId] = useState(null) const { data: routePokemon, isLoading: loadingPokemon } = useRoutePokemon( selectedRouteId, + gameId, ) const [selectedPokemon, setSelectedPokemon] = diff --git a/frontend/src/pages/RunEncounters.tsx b/frontend/src/pages/RunEncounters.tsx index f94b223..57208f8 100644 --- a/frontend/src/pages/RunEncounters.tsx +++ b/frontend/src/pages/RunEncounters.tsx @@ -218,7 +218,7 @@ function RouteGroup({ {groupEncounter.pokemon.name} )} @@ -972,7 +972,7 @@ export function RunEncounters() { {encounter.pokemon.name} )} @@ -1116,6 +1116,7 @@ export function RunEncounters() { {selectedRoute && ( setShowShinyModal(false)} isPending={createEncounter.isPending}