update dependencies
This commit is contained in:
parent
9a268b7200
commit
6c58cd393d
@ -8,8 +8,11 @@ import dev.inmo.postssystem.features.auth.client.ui.AuthUIModel
|
|||||||
import dev.inmo.postssystem.features.auth.client.ui.AuthUIViewModel
|
import dev.inmo.postssystem.features.auth.client.ui.AuthUIViewModel
|
||||||
import dev.inmo.postssystem.features.auth.common.AuthTokenInfo
|
import dev.inmo.postssystem.features.auth.common.AuthTokenInfo
|
||||||
import dev.inmo.micro_utils.coroutines.ContextSafelyExceptionHandler
|
import dev.inmo.micro_utils.coroutines.ContextSafelyExceptionHandler
|
||||||
|
import dev.inmo.micro_utils.fsm.common.CheckableHandlerHolder
|
||||||
|
import dev.inmo.micro_utils.fsm.common.StatesMachine
|
||||||
import dev.inmo.micro_utils.repos.mappers.withMapper
|
import dev.inmo.micro_utils.repos.mappers.withMapper
|
||||||
import dev.inmo.micro_utils.serialization.typed_serializer.TypedSerializer
|
import dev.inmo.micro_utils.serialization.typed_serializer.TypedSerializer
|
||||||
|
import dev.inmo.postssystem.client.settings.auth.AuthSettings
|
||||||
import kotlinx.browser.document
|
import kotlinx.browser.document
|
||||||
import kotlinx.browser.localStorage
|
import kotlinx.browser.localStorage
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
@ -17,8 +20,11 @@ import kotlinx.serialization.builtins.serializer
|
|||||||
import kotlinx.serialization.serializer
|
import kotlinx.serialization.serializer
|
||||||
import org.koin.core.Koin
|
import org.koin.core.Koin
|
||||||
import org.koin.core.context.loadKoinModules
|
import org.koin.core.context.loadKoinModules
|
||||||
|
import org.koin.core.parameter.ParametersHolder
|
||||||
|
import org.koin.core.qualifier.Qualifier
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
import org.w3c.dom.HTMLElement
|
import org.w3c.dom.HTMLElement
|
||||||
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
val defaultTypedSerializer = TypedSerializer<Any>(
|
val defaultTypedSerializer = TypedSerializer<Any>(
|
||||||
"AuthTokenInfo" to AuthTokenInfo.serializer(),
|
"AuthTokenInfo" to AuthTokenInfo.serializer(),
|
||||||
@ -86,6 +92,49 @@ fun baseKoin(): Koin {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
strictlyOn<AuthUIFSMState>(get<AuthView>())
|
strictlyOn<AuthUIFSMState>(get<AuthView>())
|
||||||
|
|
||||||
|
// Костыль, в JS на момент Пн дек 6 14:19:29 +06 2021 если использовать strictlyOn генерируются
|
||||||
|
// некорректные безымянные классы (у них отсутствует метод handleState)
|
||||||
|
class DefaultStateHandlerWrapper<T : UIFSMState>(
|
||||||
|
private val klass: KClass<out UIFSMHandler<T>>,
|
||||||
|
private val stateKlass: KClass<T>,
|
||||||
|
private val qualifier: Qualifier? = null,
|
||||||
|
private val parameters: ((T) -> ParametersHolder)? = null
|
||||||
|
) : CheckableHandlerHolder<UIFSMState, UIFSMState> {
|
||||||
|
override suspend fun StatesMachine<in UIFSMState>.handleState(state: UIFSMState): UIFSMState? {
|
||||||
|
@Suppress("UNCHECKED_CAST", "NAME_SHADOWING")
|
||||||
|
val state = state as T
|
||||||
|
return runCatching {
|
||||||
|
val authSettings = get<AuthSettings>()
|
||||||
|
authSettings.loadingJob.join()
|
||||||
|
if (authSettings.authorizedDIModule.value == null) {
|
||||||
|
error("Can't perform state $state: Auth module was not initialized")
|
||||||
|
} else {
|
||||||
|
get<UIFSMHandler<T>>(klass, qualifier, parameters ?.let { { it(state) } }).run {
|
||||||
|
handleState(state)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.getOrElse { e ->
|
||||||
|
e.printStackTrace()
|
||||||
|
AuthUIFSMState(state)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun checkHandleable(state: UIFSMState): Boolean = stateKlass.isInstance(state)
|
||||||
|
}
|
||||||
|
inline fun <reified T : UIFSMState> registerHandler(
|
||||||
|
klass: KClass<out UIFSMHandler<T>>,
|
||||||
|
qualifier: Qualifier? = null,
|
||||||
|
parameters: ((T) -> ParametersHolder)? = null
|
||||||
|
) = add(
|
||||||
|
DefaultStateHandlerWrapper<T>(
|
||||||
|
klass,
|
||||||
|
T::class,
|
||||||
|
qualifier,
|
||||||
|
parameters
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
client/src/jsMain/resources/js/material.min.js
vendored
10
client/src/jsMain/resources/js/material.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -9,25 +9,24 @@ android.enableJetifier=true
|
|||||||
|
|
||||||
# Common
|
# Common
|
||||||
|
|
||||||
kotlin_version=1.5.31
|
kotlin_version=1.6.10
|
||||||
kotlin_serialisation_core_version=1.3.1
|
kotlin_serialisation_core_version=1.3.2
|
||||||
|
|
||||||
koin_version=3.1.2
|
koin_version=3.1.2
|
||||||
microutils_version=0.8.7
|
microutils_version=0.9.0
|
||||||
ktor_version=1.6.5
|
ktor_version=1.6.7
|
||||||
logback_version=1.2.6
|
logback_version=1.2.10
|
||||||
uuid_version=0.3.1
|
uuid_version=0.3.1
|
||||||
klock_version=2.4.8
|
klock_version=2.4.10
|
||||||
|
|
||||||
# Server
|
# Server
|
||||||
|
|
||||||
kotlin_exposed_version=0.36.2
|
kotlin_exposed_version=0.37.2
|
||||||
psql_version=42.3.0
|
psql_version=42.3.0
|
||||||
|
|
||||||
# JS
|
# JS
|
||||||
|
|
||||||
kotlinx_html_version=0.7.3
|
kotlinx_html_version=0.7.3
|
||||||
materialDesignLite=1.3.0
|
|
||||||
|
|
||||||
# ANDROID
|
# ANDROID
|
||||||
|
|
||||||
@ -41,7 +40,7 @@ espresso_core=3.3.0
|
|||||||
|
|
||||||
# Dokka
|
# Dokka
|
||||||
|
|
||||||
dokka_version=1.5.31
|
dokka_version=1.6.0
|
||||||
|
|
||||||
# Project data
|
# Project data
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user