ObservableMutableState.kt (551B) - raw
1 package me.rhunk.snapenhance.ui.util 2 3 import androidx.compose.runtime.MutableState 4 5 class ObservableMutableState<T>( 6 defaultValue: T, 7 val onChange: (T, T) -> Unit = { _, _ -> }, 8 ) : MutableState<T> { 9 private var mutableValue: T = defaultValue 10 override var value: T 11 get() = mutableValue 12 set(value) { 13 val oldValue = mutableValue 14 mutableValue = value 15 onChange(oldValue, value) 16 } 17 override fun component1() = value 18 override fun component2(): (T) -> Unit = { value = it } 19 }