From 77439b5db5ec6528990909833ea14ba32defe9d9 Mon Sep 17 00:00:00 2001 From: Greg Johnston Date: Thu, 15 Jun 2023 20:09:22 -0400 Subject: [PATCH] fix: setting `set_pending` now that `` body doesn't re-render (#1193) --- leptos/src/transition.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/leptos/src/transition.rs b/leptos/src/transition.rs index a5488b3ca..d95ca259c 100644 --- a/leptos/src/transition.rs +++ b/leptos/src/transition.rs @@ -1,6 +1,9 @@ use leptos_dom::{Fragment, IntoView, View}; use leptos_macro::component; -use leptos_reactive::{use_context, Scope, SignalSetter, SuspenseContext}; +use leptos_reactive::{ + create_isomorphic_effect, use_context, Scope, SignalGet, SignalSetter, + SuspenseContext, +}; use std::{ cell::{Cell, RefCell}, rc::Rc, @@ -97,9 +100,6 @@ where is_first_run(&first_run, &suspense_context); first_run.set(is_first_run); - if let Some(set_pending) = &set_pending { - set_pending.set(true); - } if let Some(prev_children) = &*prev_child.borrow() { if is_first_run { fallback().into_view(cx) @@ -132,9 +132,12 @@ where } child_runs.set(child_runs.get() + 1); - if let Some(set_pending) = &set_pending { - set_pending.set(false); - } + let pending = suspense_context.pending_resources; + create_isomorphic_effect(cx, move |_| { + if let Some(set_pending) = set_pending { + set_pending.set(pending.get() > 0) + } + }); frag })) .build(),