All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.arkivanov.decompose.router.children.ChildItem.kt Maven / Gradle / Ivy

There is a newer version: 3.2.0-beta01
Show newest version
package com.arkivanov.decompose.router.children

import com.arkivanov.decompose.backhandler.ChildBackHandler
import com.arkivanov.essenty.instancekeeper.InstanceKeeperDispatcher
import com.arkivanov.essenty.lifecycle.LifecycleRegistry
import com.arkivanov.essenty.statekeeper.SerializableContainer
import com.arkivanov.essenty.statekeeper.StateKeeperDispatcher

internal sealed interface ChildItem {

    val configuration: C
    val instance: T?

    data class Created(
        override val configuration: C,
        override val instance: T,
        val lifecycleRegistry: LifecycleRegistry,
        val stateKeeperDispatcher: StateKeeperDispatcher,
        val instanceKeeperDispatcher: InstanceKeeperDispatcher,
        val backHandler: ChildBackHandler,
    ) : ChildItem

    data class Destroyed(
        override val configuration: C,
        val savedState: SerializableContainer? = null
    ) : ChildItem {
        override val instance: Nothing? = null
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy