diff options
Diffstat (limited to 'teleterm-web/src')
-rw-r--r-- | teleterm-web/src/lib.rs | 2 | ||||
-rw-r--r-- | teleterm-web/src/model.rs | 6 | ||||
-rw-r--r-- | teleterm-web/src/views/login.rs | 10 |
3 files changed, 10 insertions, 8 deletions
diff --git a/teleterm-web/src/lib.rs b/teleterm-web/src/lib.rs index 37c7d0d..1e44d98 100644 --- a/teleterm-web/src/lib.rs +++ b/teleterm-web/src/lib.rs @@ -10,7 +10,7 @@ use crate::prelude::*; #[allow(clippy::large_enum_variant)] #[derive(Clone)] enum Msg { - Login, + Login(String), LoggedIn(seed::fetch::ResponseDataResult<crate::protocol::LoginResponse>), Refresh, List(seed::fetch::ResponseDataResult<Vec<crate::protocol::Session>>), diff --git a/teleterm-web/src/model.rs b/teleterm-web/src/model.rs index 67cd984..7234df3 100644 --- a/teleterm-web/src/model.rs +++ b/teleterm-web/src/model.rs @@ -56,11 +56,7 @@ impl Model { orders: &mut impl Orders<crate::Msg>, ) { match msg { - crate::Msg::Login => { - let username = seed::to_input( - &seed::document().get_element_by_id("username").unwrap(), - ) - .value(); + crate::Msg::Login(username) => { log::debug!("login for username {}", username); self.login(&username, orders); } 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) + }), ]] } |