@@ -21,7 +21,7 @@ import androidx.lifecycle.ViewModel
2121import androidx.lifecycle.viewModelScope
2222import co.pokeapi.pokekotlin.PokeApi
2323import co.pokeapi.pokekotlin.demoapp.util.ioDispatcher
24- import co.pokeapi.pokekotlin.model.NamedApiResource
24+ import co.pokeapi.pokekotlin.model.Handle
2525import co.pokeapi.pokekotlin.model.PokemonVariety
2626import coil3.compose.AsyncImage
2727import kotlinx.coroutines.launch
@@ -36,13 +36,13 @@ sealed interface LoadingStatus<out T> {
3636 data object Loading : LoadingStatus <Nothing >
3737}
3838
39- typealias PokemonListStatus = LoadingStatus <List <NamedApiResource >>
39+ typealias PokemonListStatus = LoadingStatus <List <Handle . Named < PokemonVariety > >>
4040
4141typealias PokemonListItemStatus = LoadingStatus <PokemonVariety >
4242
4343class PokemonListScreenViewModel (private val api : PokeApi ) : ViewModel() {
4444 val summaries = mutableStateOf<PokemonListStatus >(LoadingStatus .Loading )
45- val details = mutableStateMapOf<NamedApiResource , PokemonListItemStatus >()
45+ val details = mutableStateMapOf<Handle < PokemonVariety > , PokemonListItemStatus > ()
4646
4747 init {
4848 loadPokemonList()
@@ -65,7 +65,7 @@ class PokemonListScreenViewModel(private val api: PokeApi) : ViewModel() {
6565 }
6666 }
6767
68- fun loadPokemonDetails (pokemon : NamedApiResource ) {
68+ fun loadPokemonDetails (pokemon : Handle < PokemonVariety > ) {
6969 if (details[pokemon] == LoadingStatus .Loading || details[pokemon] is LoadingStatus .Success )
7070 return // Already loading or loaded
7171
@@ -127,7 +127,10 @@ fun PokemonListScreen(viewModel: PokemonListScreenViewModel = koinViewModel()) {
127127}
128128
129129@Composable
130- private fun PokemonListItem (viewModel : PokemonListScreenViewModel , item : NamedApiResource ) {
130+ private fun PokemonListItem (
131+ viewModel : PokemonListScreenViewModel ,
132+ item : Handle .Named <PokemonVariety >,
133+ ) {
131134 LaunchedEffect (item) { viewModel.loadPokemonDetails(item) }
132135
133136 Card (modifier = Modifier .padding(8 .dp).fillMaxWidth()) {
0 commit comments