MosaicScreenStateHolder

class MosaicScreenStateHolder(initialTiles: ImmutableList<TileSchema>, initialEvents: ImmutableList<EventSchema>, failureTiles: ImmutableList<TileSchema>, failureEvents: ImmutableList<EventSchema>, navigationData: ScreenNavKey.NavigationData, eventManager: EventManager, val tilesManager: TilesManager, val tileRendererManager: TileRendererManager) : ScreenStateHolder<State, Event, Effect> , ScreenBehaviorsHolder, ScreenDataHolder

Constructors

Link copied to clipboard
constructor(initialTiles: ImmutableList<TileSchema>, initialEvents: ImmutableList<EventSchema>, failureTiles: ImmutableList<TileSchema>, failureEvents: ImmutableList<EventSchema>, navigationData: ScreenNavKey.NavigationData, eventManager: EventManager, tilesManager: TilesManager, tileRendererManager: TileRendererManager)

Properties

Link copied to clipboard
val effects: SharedFlow<Effect>
Link copied to clipboard
Link copied to clipboard
val uiState: StateFlow<State>

Functions

Link copied to clipboard
expect open fun addCloseable(closeable: AutoCloseable)
expect fun addCloseable(key: String, closeable: AutoCloseable)
Link copied to clipboard
open override fun addPlainData(data: Any?, dataId: String)

Writes data under dataId in this screen's flat store, overwriting any existing value. The mechanism behind UpdateData targeting screenPlainData().

Link copied to clipboard
open override fun addSegmentedData(data: Any?, segmentId: String, dataId: String)

Writes data under dataId within this screen's segmentId namespace, overwriting any existing value. The mechanism behind UpdateData targeting screenSegmentedData(segmentId).

Link copied to clipboard
Link copied to clipboard
open override fun broadcastData(data: ScreenTilesBroadcastData)

Publishes data on this screen's dev.catbit.mosaic.client.ui.sdui.foundation.screen_tiles_broadcast.ScreenTilesBroadcastChannel — what EventRunningScope.broadcastData(...) delegates to.

Link copied to clipboard
fun MutableSharedFlow<Effect>.dispatch(effect: Effect)
Link copied to clipboard
open override fun getAllNavigationData(): Map<String, Any>

Every navigation argument this screen was opened with.

Link copied to clipboard
open override fun getAllPlainData(): Map<String, Any?>

Every flat entry currently stored on this screen, keyed by data id.

Link copied to clipboard
open override fun getAllSegmentedData(segmentId: String): Map<String, Any?>?

Every entry currently stored within segmentId, keyed by data id.

Link copied to clipboard
expect fun <T : AutoCloseable> getCloseable(key: String): T?
Link copied to clipboard
open override fun getNavigationData(dataId: String): Any?

Reads the navigation argument dataId this screen was opened with — read-only, there is no add/remove counterpart, since navigation arguments are fixed for the lifetime of a screen instance. The mechanism behind GetData's screenNavigationData() data source.

Link copied to clipboard
open override fun getPlainData(dataId: String): Any?

Reads the flat entry stored under dataId.

Link copied to clipboard
open override fun getSegmentedData(dataId: String, segmentId: String): Any?

Reads the entry stored under dataId within segmentId.

Link copied to clipboard
open override fun onEvent(event: Event)
Link copied to clipboard
open override fun removePlainData(dataId: String)

Removes the flat entry stored under dataId, if any.

Link copied to clipboard
open override fun removeSegmentedData(segmentId: String, dataId: String)

Removes the entry stored under dataId within segmentId, if any.

Link copied to clipboard
open override fun setState(state: ScreenBehaviorsHolder.State)

Moves this screen to state — the mechanism behind ChangeScreenState, and what GetScreen/RefreshScreen ultimately call once a fetch resolves.

Link copied to clipboard
open override fun wipePlainData()

Clears every flat entry on this screen.

Link copied to clipboard
open override fun wipeSegmentedData()

Clears every segment on this screen entirely — every namespace, not just one.

open override fun wipeSegmentedData(segmentId: String)

Clears every entry within segmentId on this screen, leaving other segments untouched.