Untitled

 avatar
unknown
kotlin
2 years ago
765 B
4
Indexable
sealed interface Event {

  sealed interface Ui {

    enum Click : Ui { Back, Next }

    sealed interface Action : Ui {
      data class OnNameInput(val value: TextFieldValue) : Action
      object OnNameClear : Action
    }
  }
}

object Reducer: ScreenDslReducer {

  override fun Result.ui(event: Event.Ui) {
    when (event) {
      is Event.Ui.Action -> uiAction(event)
      is Event.Ui.Click -> uiClick(event)
    }
  }
  
  private fun Result.uiClick(event: Event.Ui.Click) {
    when (event) {
      Event.Ui.Click.Back -> TODO()
      Event.Ui.Click.Next -> TODO()
    }
  }

  private fun Result.uiAction(event: Event.Ui.Action) {
    when (event) {
      Event.Ui.Action.OnNameClear -> TODO()
      is Event.Ui.Action.OnNameInput -> TODO()
    }
  }
}
Editor is loading...