diff --git a/rekotlin/src/main/kotlin/org/rekotlin/CompositeStore.kt b/rekotlin/src/main/kotlin/org/rekotlin/CompositeStore.kt index 05cb17b..028cd0f 100644 --- a/rekotlin/src/main/kotlin/org/rekotlin/CompositeStore.kt +++ b/rekotlin/src/main/kotlin/org/rekotlin/CompositeStore.kt @@ -38,7 +38,7 @@ private class CompositeStore( init { stores.forEach { store -> - store.subscribeTo { _ -> + store.subscribeProjected { _ -> val prevState = _state val newState = compose(stores) _state = newState @@ -134,14 +134,10 @@ private class CompositeStore( } private val Effect.isDispatching get() = effectDispatcher.isDispatching(this) -} -inline fun Store.subscribeTo(crossinline subscriber: (State) -> Unit) = - object : Subscriber { - override fun newState(state: State) { - subscriber(state) - } - }.also { subscribe(it) } + private inline fun Store.subscribeProjected(crossinline subscriber: (State) -> Unit) = + subscribe(subscriber { subscriber(it) }) +} private class EffectDispatcher { private val dispatching = mutableListOf()