import { createSlice, Slice } from '@reduxjs/toolkit'; import type { PayloadAction } from '@reduxjs/toolkit'; import { startAppListening } from 'app/listenerMiddleware'; import { PokedexState, RegionPokemonRange } from 'features/Pokedex/types/slice'; import { getStartAndEndIdsForRegion } from './utils'; import { PokemonResponseData } from './types/api'; const initialState: PokedexState = { selectedRegion: '', regionPokemonIdsList: [], selectedType: '', selectedSort: '', isLoadingPokemons: true, pokemonList: [], }; export const pokedexSlice: Slice = createSlice({ name: 'pokedex', initialState, reducers: { setSelectedRegion: (state, action: PayloadAction) => { state.selectedRegion = action.payload; }, setSelectedType: (state, action: PayloadAction) => { state.selectedType = action.payload; }, setSelectedSort: (state, action: PayloadAction) => { state.selectedSort = action.payload; }, setRegionPokemonIdsList: ( state, action: PayloadAction, ) => { state.regionPokemonIdsList = action.payload; }, setIsLoadingPokemons: (state, action: PayloadAction) => { state.isLoadingPokemons = action.payload; }, setPokemonList: (state, action: PayloadAction) => { state.pokemonList = action.payload; }, }, }); export const { setSelectedRegion, setSelectedType, setSelectedSort, setRegionPokemonIdsList, setIsLoadingPokemons, setPokemonList, } = pokedexSlice.actions; export default pokedexSlice.reducer;