From fb41b9fbdb8e298d5cb69168dd53a6945a6348b1 Mon Sep 17 00:00:00 2001 From: Robert Jaros Date: Sun, 13 Oct 2019 20:04:35 +0200 Subject: Allow to unsubscribe from the ObservableState. --- src/main/kotlin/pl/treksoft/kvision/state/StateBinding.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/main/kotlin/pl/treksoft/kvision/state/StateBinding.kt') diff --git a/src/main/kotlin/pl/treksoft/kvision/state/StateBinding.kt b/src/main/kotlin/pl/treksoft/kvision/state/StateBinding.kt index 7df82adc..adb7d3be 100644 --- a/src/main/kotlin/pl/treksoft/kvision/state/StateBinding.kt +++ b/src/main/kotlin/pl/treksoft/kvision/state/StateBinding.kt @@ -22,8 +22,10 @@ class StateBinding( private val factory: (CONT.(S) -> CONTENT) ) : Widget(setOf()) { + private val unsubscribe: () -> Unit + init { - observableState.subscribe { update(it) } + unsubscribe = observableState.subscribe { update(it) } } private var updateState: ((S, CONTENT) -> Unit)? = null @@ -51,6 +53,11 @@ class StateBinding( this.updateState = updateState } + override fun dispose() { + unsubscribe() + super.dispose() + } + companion object { /** * DSL builder extension function. -- cgit