rememberStateMachine
fun <T : StateMachine<S, *, *>, S : State> rememberStateMachine(vararg inputs: Any?, initialState: S, key: String? = null, init: (state: S) -> T): T
Remember a StateMachine that is remembered across compositions and configuration changes.
Samples
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import io.github.ryunen344.mutton.compose.rememberStateMachine
fun main() {
//sampleStart
val coroutineScope = rememberCoroutineScope()
val stateMachine = rememberStateMachine<MatterStateMachine, MatterState>(initialState = MatterState.Solid) { state ->
MatterStateMachine(initialState = state, context = coroutineScope.coroutineContext)
}
val state by stateMachine.state.collectAsStateWithLifecycle()
LaunchedEffect(state) {
println("MatterStateMachine state: $state")
}
//sampleEnd
}