Skip to content

Instantly share code, notes, and snippets.

@MkhytarMkhoian
Last active May 13, 2024 19:09
Show Gist options
  • Save MkhytarMkhoian/f0d0e210d36ba7761928dc05024817af to your computer and use it in GitHub Desktop.
Save MkhytarMkhoian/f0d0e210d36ba7761928dc05024817af to your computer and use it in GitHub Desktop.
@Composable
fun FareListRoute(
navigator: FareListNavigator,
ryderId: String,
viewModel: FareListViewModel = koinViewModel { parametersOf(ryderId) },
scaffoldState: ScaffoldState = rememberScaffoldState(),
) {
val state by viewModel.collectAsState()
FareListScreen(
uiState = state,
scaffoldState = scaffoldState,
onFareClick = viewModel::onFareClick,
)
viewModel.RenderEffect(scaffoldState = scaffoldState, navigator = navigator)
}
@Composable
private fun FareListViewModel.RenderEffect(
scaffoldState: ScaffoldState,
navigator: FareListNavigator,
) {
collectSideEffect { effect ->
when (effect) {
is FareListEffect.GoToConfirmation -> {
navigator.goToConfirmation(ryderId = effect.ryderId, fare = effect.fare)
}
FareListEffect.ShowGeneralNetworkError -> scaffoldState.showSnackBar("Network error")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment