diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-25 13:54:17 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-25 13:54:17 -0500 |
commit | 097f97b90ef5af2f2c75bbcce87d9c15a9a97c46 (patch) | |
tree | a7bdebccdc0035295aadd9b14ce410357c337f7e /teleterm-web/src/views/login.rs | |
parent | 64134b9e72d6d3aff19354f77d211c046bd9086b (diff) | |
download | teleterm-097f97b90ef5af2f2c75bbcce87d9c15a9a97c46.tar.gz teleterm-097f97b90ef5af2f2c75bbcce87d9c15a9a97c46.zip |
move value extraction logic into the view
since it depends more on the structure of the rendered page
Diffstat (limited to 'teleterm-web/src/views/login.rs')
-rw-r--r-- | teleterm-web/src/views/login.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/teleterm-web/src/views/login.rs b/teleterm-web/src/views/login.rs index bf2ae9a..a7d50c8 100644 --- a/teleterm-web/src/views/login.rs +++ b/teleterm-web/src/views/login.rs @@ -2,7 +2,6 @@ use crate::prelude::*; pub(crate) fn render(_: &crate::model::Model) -> Vec<Node<crate::Msg>> { vec![seed::form![ - seed::attrs! { At::Action => "#" }, seed::label![seed::attrs! { At::For => "username" }, "username"], seed::input![seed::attrs! { At::Id => "username", @@ -12,6 +11,13 @@ pub(crate) fn render(_: &crate::model::Model) -> Vec<Node<crate::Msg>> { seed::input![ seed::attrs! { At::Type => "submit", At::Value => "login" } ], - simple_ev(Ev::Submit, crate::Msg::Login), + raw_ev(Ev::Submit, |event| { + event.prevent_default(); + let username = seed::to_input( + &seed::document().get_element_by_id("username").unwrap(), + ) + .value(); + crate::Msg::Login(username) + }), ]] } |