Untitled
unknown
kotlin
4 years ago
832 B
7
Indexable
package com.voraapp.vora.splash.ui
import com.voraapp.vora.base.ActionHandler
import com.voraapp.vora.base.Result
import com.voraapp.vora.base.effect
import com.voraapp.vora.base.state
import com.voraapp.vora.splash.domain.CheckAuthUseCase
import javax.inject.Inject
class SplashActionHandler @Inject constructor(
private val checkAuthUseCase: CheckAuthUseCase
) : ActionHandler<SplashState, SplashAction>() {
override suspend fun handle(state: SplashState, action: SplashAction): Result {
return when (action) {
is SplashAction.CheckUser -> handleAuth()
else -> state(SplashState.InitState)
}
}
private suspend fun handleAuth() = if (checkAuthUseCase()) {
effect(SplashEffect.NavigateMainScreen)
} else {
effect(SplashEffect.NavigateAuthScreen)
}
Editor is loading...