use crate::IntoElementMaybeSignal;
use default_struct_builder::DefaultBuilder;
use std::marker::PhantomData;
#[derive(DefaultBuilder)]
pub struct UseIntersectionObserverOptions<El, M>
where
El: IntoElementMaybeSignal<web_sys::Element, M>,
{
pub(crate) immediate: bool,
pub(crate) root: Option<El>,
#[builder(into)]
pub(crate) root_margin: String,
pub(crate) thresholds: Vec<f64>,
#[builder(skip)]
_marker: PhantomData<M>,
}
impl<M> Default for UseIntersectionObserverOptions<web_sys::Element, M>
where
web_sys::Element: IntoElementMaybeSignal<web_sys::Element, M>,
{
fn default() -> Self {
Self {
immediate: true,
root: None,
root_margin: "0px".into(),
thresholds: vec![0.0],
_marker: PhantomData,
}
}
}