GurpreetSK
08/01/2024, 6:16 AMGurpreetSK
08/01/2024, 6:17 AMinternal data object HomeScreen : Screen {
    private val requests: Flow<GetRandomRant?> = MutableStateFlow(null)
    @Composable
    override fun Content() {
        val navigator = LocalNavigator.currentOrThrow
        val viewModel: HomeScreenViewModel = getScreenModel()
        val state by viewModel.models.collectAsState()
        Box(
            contentAlignment = Alignment.Center,
            modifier = Modifier.fillMaxSize()
        ) {
            Text(state)
        }
    }
}
internal class HomeScreenViewModel(
    private val repository: RantsRepository
) : ScreenModel {
    val models: StateFlow<Rant> = repository
        .getRandom()
        .retry(3)
        .catch { emit("") }
        .stateIn(screenModelScope, SharingStarted.WhileSubscribed(5000), "")
}GurpreetSK
08/01/2024, 6:18 AMinternal data object HomeScreen : Screen {
    private val requests: Flow<GetRandomRant?> = MutableStateFlow(null)
    @Composable
    override fun Content() {
        val navigator = LocalNavigator.currentOrThrow
        val viewModel: HomeScreenViewModel = getScreenModel()
        val state by viewModel.models().collectAsState()
        Box(
            contentAlignment = Alignment.Center,
            modifier = Modifier.fillMaxSize()
        ) {
            Text(state)
        }
    }
}
internal class HomeScreenViewModel(
    private val repository: RantsRepository
) : ScreenModel {
    fun models(): StateFlow<Rant> = repository
        .getRandom()
        .retry(3)
        .catch { emit("") }
        .stateIn(screenModelScope, SharingStarted.WhileSubscribed(5000), "")
}GurpreetSK
08/01/2024, 6:19 AMRantsRepository#getRandom()