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"

} "#, "rust" ) > ""

"AutoComplete Props"

"Name" "Type" "Default" "Description"
"value" "RwSignal" r#""""# "Input of autocomplete."
"placeholder" "MaybeSignal" r#""""# "Autocomplete's placeholder."
"options" "MaybeSignal>" "Vec::new()" "Options to autocomplete from."
"clear_after_select" "MaybeSignal" "false" "Whether to clear after selection."
"on_select" "Option>" "None" "On select callback function."

"AutoCompleteOption Properties"

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