Fixing build errors
This commit is contained in:
parent
e4b2347149
commit
90c6fb01dc
|
@ -21,7 +21,7 @@ use crate::operations::spawn_future;
|
|||
|
||||
struct RafState {
|
||||
id: i32,
|
||||
closure: Closure<FnMut(f64)>,
|
||||
closure: Closure<dyn FnMut(f64)>,
|
||||
}
|
||||
|
||||
// TODO generalize this so it works for any target, not just JS
|
||||
|
@ -33,7 +33,7 @@ impl Raf {
|
|||
fn new<F>(mut callback: F) -> Self where F: FnMut(f64) + 'static {
|
||||
let state: Rc<RefCell<Option<RafState>>> = Rc::new(RefCell::new(None));
|
||||
|
||||
fn schedule(callback: &Closure<FnMut(f64)>) -> i32 {
|
||||
fn schedule(callback: &Closure<dyn FnMut(f64)>) -> i32 {
|
||||
window()
|
||||
.unwrap_throw()
|
||||
.request_animation_frame(callback.as_ref().unchecked_ref())
|
||||
|
@ -51,7 +51,7 @@ impl Raf {
|
|||
}
|
||||
|
||||
callback(time);
|
||||
}) as Box<FnMut(f64)>)
|
||||
}) as Box<dyn FnMut(f64)>)
|
||||
};
|
||||
|
||||
*state.borrow_mut() = Some(RafState {
|
||||
|
|
|
@ -141,21 +141,26 @@ pub(crate) fn insert_children_signal_vec<A>(element: Node, callbacks: &mut Callb
|
|||
|
||||
state.children = values;
|
||||
|
||||
let is_inserted = state.is_inserted;
|
||||
|
||||
let mut has_inserts = false;
|
||||
|
||||
let fragment = document().create_document_fragment();
|
||||
|
||||
// TODO does this allocate if the filtered Vec is empty ?
|
||||
let after_inserts = state.children.iter_mut().filter(|dom| {
|
||||
for dom in state.children.iter_mut() {
|
||||
dom.callbacks.leak();
|
||||
|
||||
fragment.append_child(&dom.element).unwrap_throw();
|
||||
|
||||
!dom.callbacks.after_insert.is_empty()
|
||||
}).collect::<Vec<_>>();
|
||||
if !dom.callbacks.after_insert.is_empty() {
|
||||
has_inserts = true;
|
||||
}
|
||||
}
|
||||
|
||||
element.append_child(&fragment).unwrap_throw();
|
||||
|
||||
if state.is_inserted {
|
||||
for dom in after_inserts {
|
||||
if is_inserted && has_inserts {
|
||||
for dom in state.children.iter_mut() {
|
||||
dom.callbacks.trigger_after_insert();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue