use leptos::{html::Div, *};
use super::context::{AccordionContext, RootContext};
#[component]
pub fn Root(
children: Children,
#[prop(into, optional)] class: String,
#[prop(default = false)] allow_loop: bool,
) -> impl IntoView {
let accordion_ref = create_node_ref::<Div>();
let root_ctx = RootContext {
allow_loop,
..RootContext::default()
};
let ctx = AccordionContext {
root: create_rw_signal(root_ctx),
accordion_ref,
};
view! {
<Provider value={ctx}>
<div node_ref={accordion_ref} class={class}>
<Provider value={root_ctx}>{children()}</Provider>
</div>
</Provider>
}
}