russhwolf
06/05/2021, 1:01 AMrememberLauncherForActivityResult()
and wrap it into an interface that I want to pass into koin.
Right now I’m loading a module and a scope inside a `DisposableEffect`:
val locationPermissionRequester = rememberLocationPermissionRequester()
val koin = getKoin()
val scopeState = remember { mutableStateOf<Scope?>(null) }
DisposableEffect(koin, locationPermissionRequester) {
val module = module {
scope(koinUiScopeQualifier) {
scoped { locationPermissionRequester }
}
}
val scope = koin.createScope(composeScopeId, koinUiScopeQualifier)
scopeState.value = scope
koin.loadModules(listOf(module))
onDispose {
scope.close()
koin.unloadModules(listOf(module))
}
}
Then, my UI null-checks scopeState.value
before grabbing its dependencies via scopeState.value.get()
. Is that a reasonable approach? Did I overthink this? Am I missing any details?