nova_forms/components/
group.rs1use leptos::*;
2
3use crate::{Data, GroupContext, QueryStringPart};
4
5#[component]
7pub fn Group(
8 #[prop(optional, into)] label: Option<TextProp>,
10 #[prop(into)] bind: QueryStringPart,
12 #[prop(optional, into)] values: MaybeProp<Data>,
14 #[prop(optional, into)] disabled: MaybeProp<bool>,
16 children: Children
18) -> impl IntoView
19{
20 let group = GroupContext::new(bind);
21 if let Some(label) = label {
22 group.add_label(label);
23 }
24
25 create_effect(move |_| {
26 if let Some(values) = values.get() {
27 group.set_raw_value(values);
28 }
29 });
30
31 create_effect(move |_| {
32 if let Some(disabled) = disabled.get() {
33 logging::log!("group set disabled: {}", disabled);
34 group.set_disabled(disabled);
35 }
36 });
37
38 view! {
39 <Provider value=group>
40 {children()}
41 </Provider>
42 }
43}