From 41182503ac6347298683f55a62786ac156c6b64d Mon Sep 17 00:00:00 2001 From: "kidkool850@gmail.com" Date: Mon, 27 Nov 2023 13:38:41 -0600 Subject: [PATCH 1/4] remove #[doc(hidden)] from EventHandler --- packages/core/src/events.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/src/events.rs b/packages/core/src/events.rs index 3b8edb05cd..c53e2e0830 100644 --- a/packages/core/src/events.rs +++ b/packages/core/src/events.rs @@ -107,7 +107,6 @@ impl std::fmt::Debug for Event { } } -#[doc(hidden)] /// The callback type generated by the `rsx!` macro when an `on` field is specified for components. /// From 9ca09e595d1cda3f2047750a923a5bdc49a8fa76 Mon Sep 17 00:00:00 2001 From: "kidkool850@gmail.com" Date: Mon, 27 Nov 2023 13:54:18 -0600 Subject: [PATCH 2/4] Make UseFuture Clone, factor out dependencies field --- packages/hooks/src/use_future.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/hooks/src/use_future.rs b/packages/hooks/src/use_future.rs index 67bcdc74e3..b9aa20c31e 100644 --- a/packages/hooks/src/use_future.rs +++ b/packages/hooks/src/use_future.rs @@ -31,13 +31,14 @@ where let state = cx.use_hook(move || UseFuture { update: cx.schedule_update(), - needs_regen: Cell::new(true), + needs_regen: Rc::new(Cell::new(true)), state: val.clone(), task: Default::default(), - dependencies: Vec::new(), }); - if dependencies.clone().apply(&mut state.dependencies) || state.needs_regen.get() { + let state_dependencies = cx.use_hook(Vec::new); + + if dependencies.clone().apply(state_dependencies) || state.needs_regen.get() { // kill the old one, if it exists if let Some(task) = state.task.take() { cx.remove_future(task); @@ -69,11 +70,11 @@ pub enum FutureState<'a, T> { Regenerating(&'a T), // the old value } +#[derive(Clone)] pub struct UseFuture { update: Arc, - needs_regen: Cell, + needs_regen: Rc>, task: Rc>>, - dependencies: Vec>, state: UseState>, } From e77bdf811c1397bf016252a06a7236b4f5b6e442 Mon Sep 17 00:00:00 2001 From: "kidkool850@gmail.com" Date: Mon, 27 Nov 2023 13:56:47 -0600 Subject: [PATCH 3/4] Revert "Make UseFuture Clone, factor out dependencies field" This reverts commit 9ca09e595d1cda3f2047750a923a5bdc49a8fa76. --- packages/hooks/src/use_future.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/hooks/src/use_future.rs b/packages/hooks/src/use_future.rs index b9aa20c31e..67bcdc74e3 100644 --- a/packages/hooks/src/use_future.rs +++ b/packages/hooks/src/use_future.rs @@ -31,14 +31,13 @@ where let state = cx.use_hook(move || UseFuture { update: cx.schedule_update(), - needs_regen: Rc::new(Cell::new(true)), + needs_regen: Cell::new(true), state: val.clone(), task: Default::default(), + dependencies: Vec::new(), }); - let state_dependencies = cx.use_hook(Vec::new); - - if dependencies.clone().apply(state_dependencies) || state.needs_regen.get() { + if dependencies.clone().apply(&mut state.dependencies) || state.needs_regen.get() { // kill the old one, if it exists if let Some(task) = state.task.take() { cx.remove_future(task); @@ -70,11 +69,11 @@ pub enum FutureState<'a, T> { Regenerating(&'a T), // the old value } -#[derive(Clone)] pub struct UseFuture { update: Arc, - needs_regen: Rc>, + needs_regen: Cell, task: Rc>>, + dependencies: Vec>, state: UseState>, } From 527d557140c731bff779e0d63933523c779ba6e0 Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Mon, 27 Nov 2023 15:45:17 -0600 Subject: [PATCH 4/4] fix formatting --- packages/core/src/events.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/core/src/events.rs b/packages/core/src/events.rs index c53e2e0830..784a8c865e 100644 --- a/packages/core/src/events.rs +++ b/packages/core/src/events.rs @@ -107,7 +107,6 @@ impl std::fmt::Debug for Event { } } - /// The callback type generated by the `rsx!` macro when an `on` field is specified for components. /// /// This makes it possible to pass `move |evt| {}` style closures into components as property fields.