29 lines
1.1 KiB
Kotlin
29 lines
1.1 KiB
Kotlin
package dev.inmo.postssystem.features.auth.client
|
|
|
|
import dev.inmo.micro_utils.common.Optional
|
|
import dev.inmo.micro_utils.common.optional
|
|
import dev.inmo.postssystem.features.auth.client.settings.AuthSettings
|
|
import dev.inmo.postssystem.features.auth.client.settings.DefaultAuthSettings
|
|
import dev.inmo.postssystem.features.auth.client.ui.*
|
|
import dev.inmo.postssystem.features.common.common.*
|
|
import dev.inmo.postssystem.features.common.common.ui.fsm.UIFSMExceptionHandler
|
|
import dev.inmo.postssystem.features.common.common.ui.fsm.UIFSMState
|
|
import kotlin.js.JsExport
|
|
|
|
internal fun CommonAuthModuleLoader() = DefaultModuleLoader {
|
|
single<AuthSettings> { DefaultAuthSettings(get(DefaultQualifiers.SettingsQualifier), get(), getKoin(), get()) }
|
|
|
|
singleWithRandomQualifier {
|
|
UIFSMExceptionHandler { currentState, exception ->
|
|
if (exception is AuthUnavailableException) {
|
|
Optional.presented(AuthUIFSMState(currentState))
|
|
} else {
|
|
Optional.absent()
|
|
}
|
|
}
|
|
}
|
|
|
|
factory<AuthUIModel> { DefaultAuthUIModel(get(), get()) }
|
|
factory { AuthUIViewModel(get()) }
|
|
}
|