use std::rc::Rc;
use dioxus::prelude::*;
use floating_ui_dom::{AutoUpdateOptions, auto_update};
use crate::{ShallowRc, types::WhileElementsMountedFn};
pub fn use_auto_update() -> Memo<ShallowRc<WhileElementsMountedFn>> {
use_memo(|| {
let rc: Rc<WhileElementsMountedFn> = Rc::new(|reference, floating, update| {
auto_update(reference, floating, update, AutoUpdateOptions::default())
});
rc.into()
})
}
pub fn use_auto_update_with_options(
options: ReadSignal<AutoUpdateOptions>,
) -> Memo<ShallowRc<WhileElementsMountedFn>> {
use_memo(move || {
let options = options();
let rc: Rc<WhileElementsMountedFn> = Rc::new(move |reference, floating, update| {
auto_update(reference, floating, update, options.clone())
});
rc.into()
})
}