Untitled

 avatar
unknown
kotlin
3 years ago
832 B
3
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...