diff --git a/app/src/main/java/com/cornellappdev/score/nav/ScoreNavHost.kt b/app/src/main/java/com/cornellappdev/score/nav/ScoreNavHost.kt index 3d98427..fc0e267 100644 --- a/app/src/main/java/com/cornellappdev/score/nav/ScoreNavHost.kt +++ b/app/src/main/java/com/cornellappdev/score/nav/ScoreNavHost.kt @@ -26,14 +26,14 @@ fun ScoreNavHost(navController: NavHostController) { composable { CompositionLocalProvider(LocalViewModelStoreOwner provides mainScreenViewModelStoreOwner) { HomeScreen(navigateToGameDetails = { - navController.navigate(ScoreScreens.GameDetailsPage("")) + navController.navigate(ScoreScreens.GameDetailsPage(it)) }) } } composable { CompositionLocalProvider(LocalViewModelStoreOwner provides mainScreenViewModelStoreOwner) { PastGamesScreen(navigateToGameDetails = { - navController.navigate(ScoreScreens.GameDetailsPage("")) + navController.navigate(ScoreScreens.GameDetailsPage(it)) }) } } diff --git a/app/src/main/java/com/cornellappdev/score/viewmodel/GameDetailsViewModel.kt b/app/src/main/java/com/cornellappdev/score/viewmodel/GameDetailsViewModel.kt index 031f5d5..47084f1 100644 --- a/app/src/main/java/com/cornellappdev/score/viewmodel/GameDetailsViewModel.kt +++ b/app/src/main/java/com/cornellappdev/score/viewmodel/GameDetailsViewModel.kt @@ -1,11 +1,13 @@ package com.cornellappdev.score.viewmodel import androidx.lifecycle.SavedStateHandle +import androidx.navigation.toRoute import com.cornellappdev.score.model.ApiResponse import com.cornellappdev.score.model.DetailsCardData import com.cornellappdev.score.model.ScoreRepository import com.cornellappdev.score.model.map import com.cornellappdev.score.model.toGameCardData +import com.cornellappdev.score.nav.root.ScoreScreens import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject @@ -22,21 +24,18 @@ class GameDetailsViewModel @Inject constructor( loadedState = ApiResponse.Loading ) ) { + private val gameDetailsPageData = savedStateHandle.toRoute() + init { - val gameId: String? = savedStateHandle["gameId"] - gameId?.let { - scoreRepository.getGameById(it) - asyncCollect(scoreRepository.currentGamesFlow) { response -> - applyMutation { - copy( - loadedState = response.map { gameCard -> - gameCard.toGameCardData() - } - ) - } + scoreRepository.getGameById(gameDetailsPageData.gameId) + asyncCollect(scoreRepository.currentGamesFlow) { response -> + applyMutation { + copy( + loadedState = response.map { gameCard -> + gameCard.toGameCardData() + } + ) } - } ?: applyMutation { - copy(loadedState = ApiResponse.Error) } } } \ No newline at end of file