diff options
author | 2020-01-09 01:37:57 +0100 | |
---|---|---|
committer | 2020-01-09 01:37:57 +0100 | |
commit | a4e833e860c41796d491ab43e84239fcca1f303d (patch) | |
tree | c41ab304ffaf2dc2311c7d33916cd0515114ad31 /web/src/widget/text_input.rs | |
parent | 2ff0e48142c302cb93130164d083589bb2ac4979 (diff) | |
parent | cc529a1803972604b122c19c0104e71532fff993 (diff) | |
download | iced-a4e833e860c41796d491ab43e84239fcca1f303d.tar.gz iced-a4e833e860c41796d491ab43e84239fcca1f303d.tar.bz2 iced-a4e833e860c41796d491ab43e84239fcca1f303d.zip |
Merge branch 'master' into feature/shrink-by-default
Diffstat (limited to 'web/src/widget/text_input.rs')
-rw-r--r-- | web/src/widget/text_input.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/web/src/widget/text_input.rs b/web/src/widget/text_input.rs index 99792c84..eedc25bc 100644 --- a/web/src/widget/text_input.rs +++ b/web/src/widget/text_input.rs @@ -32,6 +32,7 @@ pub struct TextInput<'a, Message> { _state: &'a mut State, placeholder: String, value: String, + is_secure: bool, width: Length, max_width: Length, padding: u16, @@ -64,6 +65,7 @@ impl<'a, Message> TextInput<'a, Message> { _state: state, placeholder: String::from(placeholder), value: String::from(value), + is_secure: false, width: Length::Fill, max_width: Length::Shrink, padding: 0, @@ -73,6 +75,14 @@ impl<'a, Message> TextInput<'a, Message> { } } + /// Converts the [`TextInput`] into a secure password input. + /// + /// [`TextInput`]: struct.TextInput.html + pub fn password(mut self) -> Self { + self.is_secure = true; + self + } + /// Sets the width of the [`TextInput`]. /// /// [`TextInput`]: struct.TextInput.html @@ -161,6 +171,10 @@ where "value", bumpalo::format!(in bump, "{}", self.value).into_bump_str(), ) + .attr( + "type", + bumpalo::format!(in bump, "{}", if self.is_secure { "password" } else { "text" }).into_bump_str(), + ) .on("input", move |root, vdom, event| { let text_input = match event.target().and_then(|t| { t.dyn_into::<web_sys::HtmlInputElement>().ok() |