diff --git a/compose/auth/src/main/java/com/mudita/compose/auth/LoginScreen.kt b/compose/auth/src/main/java/com/mudita/compose/auth/LoginScreen.kt index c4e800f..d175027 100644 --- a/compose/auth/src/main/java/com/mudita/compose/auth/LoginScreen.kt +++ b/compose/auth/src/main/java/com/mudita/compose/auth/LoginScreen.kt @@ -13,6 +13,8 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.mudita.features.auth.presentation.LoginContract.Effect import com.mudita.features.auth.presentation.LoginContract.Intent import com.mudita.features.auth.presentation.LoginViewModel +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.FlowCollector import org.koin.compose.viewmodel.koinViewModel @OptIn(ExperimentalMaterial3Api::class) @@ -23,11 +25,9 @@ fun LoginScreen( ) { val state by viewModel.state.collectAsStateWithLifecycle() - LaunchedEffect(Unit) { - viewModel.effect.collect { effect -> - when (effect) { - Effect.NavigateToRegister -> onNavigateToDetails() - } + EffectHandler(viewModel.effect){ effect -> + when (effect) { + Effect.NavigateToRegister -> onNavigateToDetails() } } @@ -108,3 +108,10 @@ fun LoginScreen( } } } + +@Composable +private fun EffectHandler(effectsSource: Flow, onEffect: FlowCollector) { + LaunchedEffect(Unit) { + effectsSource.collect (onEffect) + } +}