Skip to content

Commit 536f657

Browse files
authored
Game details hot fix oopsies (#56)
1 parent fe78600 commit 536f657

2 files changed

Lines changed: 14 additions & 15 deletions

File tree

app/src/main/java/com/cornellappdev/score/nav/ScoreNavHost.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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
}
Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.cornellappdev.score.viewmodel
22

33
import androidx.lifecycle.SavedStateHandle
4+
import androidx.navigation.toRoute
45
import com.cornellappdev.score.model.ApiResponse
56
import com.cornellappdev.score.model.DetailsCardData
67
import com.cornellappdev.score.model.ScoreRepository
78
import com.cornellappdev.score.model.map
89
import com.cornellappdev.score.model.toGameCardData
10+
import com.cornellappdev.score.nav.root.ScoreScreens
911
import dagger.hilt.android.lifecycle.HiltViewModel
1012
import 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
}

0 commit comments

Comments
 (0)