use crate::components::{Demo, DemoCode}; use leptos::*; use prisms::highlight_str; use thaw::*; #[component] pub fn AutoCompletePage() -> impl IntoView { let value = create_rw_signal(String::new()); let options = create_memo(move |_| { let prefix = value .get() .split_once('@') .map_or(value.get(), |v| v.0.to_string()); vec!["@gmail.com", "@163.com"] .into_iter() .map(|suffix| AutoCompleteOption { label: format!("{prefix}{suffix}"), value: format!("{prefix}{suffix}"), }) .collect() }); view! {

"AutoComplete"

{highlight_str!( r#" let value = create_rw_signal(String::new()); let options =create_memo(|_| { let prefix = value .get() .split_once('@') .map_or(value.get(), |v| v.0.to_string()); vec!["@gmail.com", "@163.com"] .into_iter() .map(|suffix| AutoCompleteOption { label: format!("{prefix}{suffix}"), value: format!("{prefix}{suffix}"), }) .collect() }); view! { } "#, "rust" )}

"disabled"

{highlight_str!( r#" "#, "rust" )}

"invalid"

{highlight_str!( r#" "#, "rust" )}

"Prefix & Suffix"

{highlight_str!( r#" "#, "rust" )}

"AutoComplete Props"

"Name" "Type" "Default" "Description"
"value" "RwSignal" "Default::default()" "Input of autocomplete."
"placeholder" "MaybeSignal" "Default::default()" "Autocomplete's placeholder."
"options" "MaybeSignal>" "Vec::new()" "Options to autocomplete from."
"disabled" "MaybeSignal" "false" "Whether the input is disabled."
"invalid" "MaybeSignal" "false" "Whether the input is invalid."
"clear_after_select" "MaybeSignal" "false" "Whether to clear after selection."
"on_select" "Option>" "None" "On select callback function."
"class" "MaybeSignal" "Default::default()" "Additional classes for the autocomplete element."

"AutoCompleteOption Properties"

"Name" "Type" "Description"
"value" "String" "Option ID."
"label" "String" "Option label value."

"AutoComplete Slots"

"Name" "Default" "Description"
"AutoCompletePrefix" "None" "AutoCompletePrefix content."
"AutoCompleteSuffix" "None" "AutoCompleteSuffix content."

"AutoComplete Ref"

"Name" "Type" "Description"
"focus" "Fn(&self)" "Focus the input element."
"blur" "Fn(&self)" "Blur the input element."
} }