interface DataPublisher : StatePublisher, EventPublisher
Component that handle State & Event
notifyStateUpdate - help notify a data update via event, instead of publishing a state useful when need to notify part data update (like lists ...)
open suspend fun notifyStateUpdate(state: UIState, event: UIEvent): Unit |
abstract fun getState(): UIState |
|
abstract suspend fun publishEvent(event: UIEvent): Unit |
|
abstract suspend fun publishState(state: UIState, pushStateUpdate: Boolean = true): Unit |
|
open suspend fun sendEvent(event: UIEvent): Unitopen suspend fun sendEvent(event: () -> UIEvent): Unit |
|
open suspend fun setState(state: UIState): Unitopen suspend fun setState(state: () -> UIState): Unit |
fun <T : UIState> StatePublisher.getStateOrNull(): T?
Get state for type T or return null |
|
fun <T : UIState, R : Any> StatePublisher.letOnState(code: (T) -> R): R?
Let execute block on given state T if not null, return a Result R |
|
fun <T : UIState> StatePublisher.onState(code: (T) -> Unit): Unit
Let execute block on given state T if not null |