Merge pull request #76 from mondeja/signals-over-memos

Prefer signals over memos with first unused argument when possible
This commit is contained in:
Marc-Stefan Cassola 2024-02-06 18:51:12 +00:00 committed by GitHub
commit a8cef0d53c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 11 additions and 18 deletions

View file

@ -208,8 +208,7 @@ macro_rules! impl_from_signal_string {
Self::Dynamic(Signal::derive(|| None)) Self::Dynamic(Signal::derive(|| None))
} else { } else {
Self::Dynamic( Self::Dynamic(
create_memo(move |_| document().query_selector(&signal.get()).unwrap_or_default()) Signal::derive(move || document().query_selector(&signal.get()).unwrap_or_default()),
.into(),
) )
}} }}
} }

View file

@ -216,7 +216,7 @@ macro_rules! impl_from_signal_string {
fn from(signal: $ty) -> Self { fn from(signal: $ty) -> Self {
cfg_if! { if #[cfg(feature = "ssr")] { cfg_if! { if #[cfg(feature = "ssr")] {
Self::Dynamic( Self::Dynamic(
create_memo(move |_| { Signal::derive(move || {
if let Ok(node_list) = document().query_selector_all(&signal.get()) { if let Ok(node_list) = document().query_selector_all(&signal.get()) {
let mut list = Vec::with_capacity(node_list.length() as usize); let mut list = Vec::with_capacity(node_list.length() as usize);
for i in 0..node_list.length() { for i in 0..node_list.length() {
@ -227,8 +227,7 @@ macro_rules! impl_from_signal_string {
} else { } else {
vec![] vec![]
} }
}) }),
.into(),
) )
} else { } else {
let _ = signal; let _ = signal;

View file

@ -13,7 +13,7 @@ macro_rules! use_partial_cmp {
{ {
let container = container.into(); let container = container.into();
create_memo(move |_| { Signal::derive(move || {
container.with(|container| { container.with(|container| {
if container.into_iter().count() == 0 { if container.into_iter().count() == 0 {
return None; return None;
@ -34,7 +34,6 @@ macro_rules! use_partial_cmp {
.cloned() .cloned()
}) })
}) })
.into()
} }
}; };
} }

View file

@ -264,14 +264,13 @@ impl<K: Eq + Hash + Debug + Clone> UseBreakpointsReturn<K> {
let signals: Vec<_> = keys.iter().map(ge.clone()).collect(); let signals: Vec<_> = keys.iter().map(ge.clone()).collect();
create_memo(move |_| { Signal::derive(move || {
keys.iter() keys.iter()
.cloned() .cloned()
.zip(signals.iter().cloned()) .zip(signals.iter().cloned())
.filter_map(|(key, signal)| signal.get().then_some(key)) .filter_map(|(key, signal)| signal.get().then_some(key))
.collect::<Vec<_>>() .collect::<Vec<_>>()
}) })
.into()
} }
} }

View file

@ -86,7 +86,7 @@ where
let index = { let index = {
let list = list.clone(); let list = list.clone();
create_memo(move |_| { Signal::derive(move || {
list.with(|list| { list.with(|list| {
let index = get_position(&state.get(), list); let index = get_position(&state.get(), list);
@ -161,7 +161,7 @@ where
UseCycleListReturn { UseCycleListReturn {
state, state,
set_state, set_state,
index: index.into(), index,
set_index: set, set_index: set,
next, next,
prev, prev,

View file

@ -108,7 +108,7 @@ where
let (is_loading, set_loading) = create_signal(false); let (is_loading, set_loading) = create_signal(false);
let el = el.into(); let el = el.into();
let observed_element = create_memo(move |_| { let observed_element = Signal::derive(move || {
let el = el.get(); let el = el.get();
el.map(|el| { el.map(|el| {

View file

@ -81,12 +81,11 @@ where
{ {
let iterable = iterable.into(); let iterable = iterable.into();
create_memo(move |_| { Signal::derive(move || {
let mut iterable = iterable.get(); let mut iterable = iterable.get();
iterable.sort(); iterable.sort();
iterable iterable
}) })
.into()
} }
/// Version of [`use_sorted`] with a compare function. /// Version of [`use_sorted`] with a compare function.
@ -98,12 +97,11 @@ where
{ {
let iterable = iterable.into(); let iterable = iterable.into();
create_memo(move |_| { Signal::derive(move || {
let mut iterable = iterable.get(); let mut iterable = iterable.get();
iterable.sort_by(cmp_fn.clone()); iterable.sort_by(cmp_fn.clone());
iterable iterable
}) })
.into()
} }
/// Version of [`use_sorted`] by key. /// Version of [`use_sorted`] by key.
@ -116,10 +114,9 @@ where
{ {
let iterable = iterable.into(); let iterable = iterable.into();
create_memo(move |_| { Signal::derive(move || {
let mut iterable = iterable.get(); let mut iterable = iterable.get();
iterable.sort_by_key(key_fn.clone()); iterable.sort_by_key(key_fn.clone());
iterable iterable
}) })
.into()
} }