use std::str::FromStr; use leptos::prelude::*; #[component] pub fn OutlinedTextField( #[prop(default = T::default(), into)] placeholder: T, #[prop(default = RwSignal::new(T::default()))] value: RwSignal, #[prop(default = RwSignal::new(false))] disabled: RwSignal, #[prop(default = String::from(""), into)] name: String, #[prop(default = String::from(""), into)] label: String, #[prop(default = String::from(""), into)] input_type: String, ) -> impl IntoView where T: Default + 'static + FromStr + ToString + PartialEq + Send + Sync + Clone { // Parsing logic for non-string types which happens on each input. let on_input = move |e| { let input_value = event_target_value(&e); let parsed_value = T::from_str(&input_value) .unwrap_or_default(); value.set(parsed_value); }; view! (
) }