From 908b066ae4baa1fdd0edd20e1ee80a7db68417aa Mon Sep 17 00:00:00 2001 From: James Hutchison <122519877+JamesHutchison@users.noreply.github.com> Date: Fri, 3 May 2024 23:08:10 +0000 Subject: [PATCH 1/2] Fix effects running on reconnect anyways --- src/py/reactpy/reactpy/core/hooks.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/py/reactpy/reactpy/core/hooks.py b/src/py/reactpy/reactpy/core/hooks.py index 95fefaf94..5e4e6b450 100644 --- a/src/py/reactpy/reactpy/core/hooks.py +++ b/src/py/reactpy/reactpy/core/hooks.py @@ -54,7 +54,9 @@ class ReconnectingOnly(list): @overload -def use_state(initial_value: Callable[[], _Type], *, server_only: bool = False) -> State[_Type]: ... +def use_state( + initial_value: Callable[[], _Type], *, server_only: bool = False +) -> State[_Type]: ... @overload @@ -190,12 +192,9 @@ def use_effect( hook = get_current_hook() if hook.reconnecting.current: if not isinstance(dependencies, ReconnectingOnly): - return - dependencies = None - else: - if isinstance(dependencies, ReconnectingOnly): - return - dependencies = _try_to_infer_closure_values(function, dependencies) + return use_memo(lambda: None) + elif isinstance(dependencies, ReconnectingOnly): + return def add_effect(function: _EffectApplyFunc) -> None: if not asyncio.iscoroutinefunction(function): From 662f8a78e1f3907c5a6b3198d0c52c8f32218f8b Mon Sep 17 00:00:00 2001 From: James Hutchison <122519877+JamesHutchison@users.noreply.github.com> Date: Fri, 3 May 2024 23:16:45 +0000 Subject: [PATCH 2/2] fix --- src/py/reactpy/reactpy/core/hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/py/reactpy/reactpy/core/hooks.py b/src/py/reactpy/reactpy/core/hooks.py index 5e4e6b450..7279b0191 100644 --- a/src/py/reactpy/reactpy/core/hooks.py +++ b/src/py/reactpy/reactpy/core/hooks.py @@ -192,7 +192,7 @@ def use_effect( hook = get_current_hook() if hook.reconnecting.current: if not isinstance(dependencies, ReconnectingOnly): - return use_memo(lambda: None) + return memoize(lambda: None) elif isinstance(dependencies, ReconnectingOnly): return