use leptos::{leptos_dom::logging::console_log, prelude::*}; #[component] pub fn Checkbox( #[prop()] checked: Signal, #[prop(into)] on_change: Callback<(), ()>, #[prop(into)] value: String ) -> impl IntoView { view! { } } #[component] pub fn CheckboxList( #[prop(default = RwSignal::new(vec![]))] selected: RwSignal>, #[prop()] items: Vec ) -> impl IntoView { view! { // Checkbox elements go in here. Each one will have a derived signal // that checks if the name/value of that checkbox is in the selected items // vec. If so, display as selected. If not, clear that checkbox. // Somehow create a derived signal?? { items.into_iter().map(|item| { let is_checked = { let item_name = item.clone(); move || { // Check if this checkbox should be selected selected.get().contains(&item_name) } }; let checked_signal = Signal::derive(is_checked); view! { } }).collect::>() } } }