From 1ca268b65fc374daa94f8a0d94aa8303abd9f69e Mon Sep 17 00:00:00 2001 From: krzysiek Date: Wed, 18 Mar 2026 21:06:45 +0100 Subject: [PATCH] Simple convenience method for handling effects --- .../java/com/mudita/compose/auth/LoginScreen.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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) + } +}