use leptos::*;
use crate::{Data, GroupContext, QueryStringPart};
#[component]
pub fn Group(
#[prop(optional, into)] label: Option<TextProp>,
#[prop(into)] bind: QueryStringPart,
#[prop(optional, into)] values: MaybeProp<Data>,
#[prop(optional, into)] disabled: MaybeProp<bool>,
children: Children
) -> impl IntoView
{
let group = GroupContext::new(bind);
if let Some(label) = label {
group.add_label(label);
}
create_effect(move |_| {
if let Some(values) = values.get() {
group.set_raw_value(values);
}
});
create_effect(move |_| {
if let Some(disabled) = disabled.get() {
logging::log!("group set disabled: {}", disabled);
group.set_disabled(disabled);
}
});
view! {
<Provider value=group>
{children()}
</Provider>
}
}