File tree Expand file tree Collapse file tree
app/src/main/java/com/cornellappdev/score Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -26,14 +26,14 @@ fun ScoreNavHost(navController: NavHostController) {
2626 composable<Home > {
2727 CompositionLocalProvider (LocalViewModelStoreOwner provides mainScreenViewModelStoreOwner) {
2828 HomeScreen (navigateToGameDetails = {
29- navController.navigate(ScoreScreens .GameDetailsPage (" " ))
29+ navController.navigate(ScoreScreens .GameDetailsPage (it ))
3030 })
3131 }
3232 }
3333 composable<ScoreScreens .ScoresScreen > {
3434 CompositionLocalProvider (LocalViewModelStoreOwner provides mainScreenViewModelStoreOwner) {
3535 PastGamesScreen (navigateToGameDetails = {
36- navController.navigate(ScoreScreens .GameDetailsPage (" " ))
36+ navController.navigate(ScoreScreens .GameDetailsPage (it ))
3737 })
3838 }
3939 }
Original file line number Diff line number Diff line change 11package com.cornellappdev.score.viewmodel
22
33import androidx.lifecycle.SavedStateHandle
4+ import androidx.navigation.toRoute
45import com.cornellappdev.score.model.ApiResponse
56import com.cornellappdev.score.model.DetailsCardData
67import com.cornellappdev.score.model.ScoreRepository
78import com.cornellappdev.score.model.map
89import com.cornellappdev.score.model.toGameCardData
10+ import com.cornellappdev.score.nav.root.ScoreScreens
911import dagger.hilt.android.lifecycle.HiltViewModel
1012import javax.inject.Inject
1113
@@ -22,21 +24,18 @@ class GameDetailsViewModel @Inject constructor(
2224 loadedState = ApiResponse .Loading
2325 )
2426) {
27+ private val gameDetailsPageData = savedStateHandle.toRoute<ScoreScreens .GameDetailsPage >()
28+
2529 init {
26- val gameId: String? = savedStateHandle[" gameId" ]
27- gameId?.let {
28- scoreRepository.getGameById(it)
29- asyncCollect(scoreRepository.currentGamesFlow) { response ->
30- applyMutation {
31- copy(
32- loadedState = response.map { gameCard ->
33- gameCard.toGameCardData()
34- }
35- )
36- }
30+ scoreRepository.getGameById(gameDetailsPageData.gameId)
31+ asyncCollect(scoreRepository.currentGamesFlow) { response ->
32+ applyMutation {
33+ copy(
34+ loadedState = response.map { gameCard ->
35+ gameCard.toGameCardData()
36+ }
37+ )
3738 }
38- } ? : applyMutation {
39- copy(loadedState = ApiResponse .Error )
4039 }
4140 }
4241}
You can’t perform that action at this time.
0 commit comments