Skip to content

Commit

Permalink
...
Browse files Browse the repository at this point in the history
  • Loading branch information
Rene Dohan committed May 7, 2024
1 parent 3fe3648 commit 9b14175
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ interface CSStoreProperty<T> : CSProperty<T> {
val store: CSStore
val key: String
fun set(store: CSStore, value: T)
var filter: ((T?) -> T?)?
fun getFiltered(store: CSStore): T?
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,14 @@ abstract class CSLateStorePropertyBase<T>(

open fun onLoadedValueChanged(value: T?) = Unit

override var filter: ((T?) -> T?)? = null
override fun getFiltered(store: CSStore): T? =
get().let { filter?.invoke(it) ?: it }

init {
register(store.eventLoaded.listen {
if (loadedValue != null) {
val newValue = get()!!
val newValue = getFiltered(store)!!
if (loadedValue != newValue) {
loadedValue = newValue
onValueChanged(newValue)
Expand All @@ -33,7 +37,7 @@ abstract class CSLateStorePropertyBase<T>(

override var value: T
get() {
if (loadedValue == null) loadedValue = get()!!
if (loadedValue == null) loadedValue = getFiltered(store)!!
return loadedValue!!
}
set(value) = value(value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,20 @@ abstract class CSValueStoreProperty<T>(

abstract val default: T
abstract fun get(store: CSStore): T?

override var filter: ((T?) -> T?)? = null
override fun getFiltered(store: CSStore): T? = get(store).let { filter?.invoke(it) ?: it }

protected var loadedValue: T? by lazyNullableVar(
didSet = ::onLoadedValueChanged,
initializer = { get(store) }
initializer = { getFiltered(store) }
)

open fun onLoadedValueChanged(value: T?) = Unit

init {
register(store.eventLoaded.listen {
val newValue = get(store)
val newValue = getFiltered(store)
if (newValue == null) {
if (loadedValue != default) {
loadedValue = null
Expand Down

0 comments on commit 9b14175

Please sign in to comment.