
commonMain.com.arkivanov.decompose.extensions.compose.jetbrains.SubscribeAsState.kt Maven / Gradle / Ivy
package com.arkivanov.decompose.extensions.compose.jetbrains
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.State
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import com.arkivanov.decompose.value.Value
import com.arkivanov.decompose.value.ValueObserver
@Composable
fun Value.subscribeAsState(): State {
val state = remember(this) { mutableStateOf(value) }
DisposableEffect(this) {
val observer: ValueObserver = { state.value = it }
subscribe(observer)
onDispose {
unsubscribe(observer)
}
}
return state
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy