From eb5769fd03602cc13707fc4a76aff02402495f65 Mon Sep 17 00:00:00 2001 From: Filipe Rodrigues Date: Sun, 4 Feb 2024 02:42:13 +0000 Subject: [PATCH] Fixed `Signal::with` not being reactive. --- dynatos-reactive/src/signal.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/dynatos-reactive/src/signal.rs b/dynatos-reactive/src/signal.rs index db9730b..edbcf3f 100644 --- a/dynatos-reactive/src/signal.rs +++ b/dynatos-reactive/src/signal.rs @@ -42,14 +42,7 @@ impl Signal { where T: Copy, { - if let Some(effect) = Effect::running() { - self.add_subscriber(effect); - } - - self.inner - .try_borrow() - .expect("Cannot get signal value while updating") - .value + self.with(|value| *value) } /// Calls `f` with the inner value @@ -58,6 +51,10 @@ impl Signal { where F: FnOnce(&T) -> O, { + if let Some(effect) = Effect::running() { + self.add_subscriber(effect); + } + let inner = self.inner.try_borrow().expect("Cannot use signal value while updating"); f(&inner.value) }