mirror of
https://github.com/adoyle0/thaw.git
synced 2025-03-13 05:59:49 -04:00
fix: nightly Callback conversion problem (#30)
This commit is contained in:
parent
985d31bf7d
commit
601b4d5ccd
2 changed files with 16 additions and 16 deletions
|
@ -73,23 +73,23 @@ pub fn Binder<El: ElementDescriptor + Clone + 'static>(
|
||||||
scrollable_element_handle_vec.set_value(handle_vec);
|
scrollable_element_handle_vec.set_value(handle_vec);
|
||||||
};
|
};
|
||||||
|
|
||||||
let add_scroll_listener = move |listener: Callback<()>| {
|
let add_scroll_listener = Callback::new(move |listener: Callback<()>| {
|
||||||
scroll_listener.update_value(|scroll_listener| {
|
scroll_listener.update_value(|scroll_listener| {
|
||||||
if scroll_listener.is_none() {
|
if scroll_listener.is_none() {
|
||||||
ensure_scroll_listener();
|
ensure_scroll_listener();
|
||||||
}
|
}
|
||||||
*scroll_listener = Some(listener);
|
*scroll_listener = Some(listener);
|
||||||
})
|
})
|
||||||
};
|
});
|
||||||
|
|
||||||
let remove_scroll_listener = move |_| {
|
let remove_scroll_listener = Callback::new(move |_| {
|
||||||
scrollable_element_handle_vec.update_value(|vec| {
|
scrollable_element_handle_vec.update_value(|vec| {
|
||||||
vec.drain(..).for_each(|handle| handle.remove());
|
vec.drain(..).for_each(|handle| handle.remove());
|
||||||
});
|
});
|
||||||
scroll_listener.set_value(None);
|
scroll_listener.set_value(None);
|
||||||
};
|
});
|
||||||
|
|
||||||
let add_resize_listener = move |listener: Callback<()>| {
|
let add_resize_listener = Callback::new(move |listener: Callback<()>| {
|
||||||
resize_handle.update_value(move |resize_handle| {
|
resize_handle.update_value(move |resize_handle| {
|
||||||
if let Some(handle) = resize_handle.take() {
|
if let Some(handle) = resize_handle.take() {
|
||||||
handle.remove();
|
handle.remove();
|
||||||
|
@ -100,19 +100,19 @@ pub fn Binder<El: ElementDescriptor + Clone + 'static>(
|
||||||
|
|
||||||
*resize_handle = Some(handle);
|
*resize_handle = Some(handle);
|
||||||
});
|
});
|
||||||
};
|
});
|
||||||
|
|
||||||
let remove_resize_listener = move |_| {
|
let remove_resize_listener = Callback::new(move |_| {
|
||||||
resize_handle.update_value(move |handle| {
|
resize_handle.update_value(move |handle| {
|
||||||
if let Some(handle) = handle.take() {
|
if let Some(handle) = handle.take() {
|
||||||
handle.remove();
|
handle.remove();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
});
|
||||||
|
|
||||||
on_cleanup(move || {
|
on_cleanup(move || {
|
||||||
remove_scroll_listener(());
|
remove_scroll_listener.call(());
|
||||||
remove_resize_listener(());
|
remove_resize_listener.call(());
|
||||||
});
|
});
|
||||||
view! {
|
view! {
|
||||||
{children()}
|
{children()}
|
||||||
|
|
|
@ -28,19 +28,19 @@ where
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
let allow_value = move |v: String| {
|
let allow_value = Callback::<String, bool>::new(move |v: String| {
|
||||||
let Ok(v) = v.parse::<T>() else { return false };
|
let Ok(v) = v.parse::<T>() else { return false };
|
||||||
value.set(v);
|
value.set(v);
|
||||||
true
|
true
|
||||||
};
|
});
|
||||||
let step: StoredMaybeSignal<_> = step.into();
|
let step: StoredMaybeSignal<_> = step.into();
|
||||||
|
|
||||||
let add = move |_| {
|
let add = Callback::<ev::MouseEvent>::new(move |_| {
|
||||||
value.set(value.get_untracked() + step.get_untracked());
|
value.set(value.get_untracked() + step.get_untracked());
|
||||||
};
|
});
|
||||||
let sub = move |_| {
|
let sub = Callback::<ev::MouseEvent>::new(move |_| {
|
||||||
value.set(value.get_untracked() - step.get_untracked());
|
value.set(value.get_untracked() - step.get_untracked());
|
||||||
};
|
});
|
||||||
view! {
|
view! {
|
||||||
<Input value=input_value allow_value placeholder>
|
<Input value=input_value allow_value placeholder>
|
||||||
<InputSuffix slot>
|
<InputSuffix slot>
|
||||||
|
|
Loading…
Add table
Reference in a new issue