Start capturing input
This commit is contained in:
parent
7f0b7982ec
commit
e8a8a12de3
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -5484,6 +5484,7 @@ dependencies = [
|
|||||||
"serde 1.0.217",
|
"serde 1.0.217",
|
||||||
"serde-wasm-bindgen",
|
"serde-wasm-bindgen",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
"wasm-bindgen",
|
||||||
"wasm-bindgen-futures",
|
"wasm-bindgen-futures",
|
||||||
"web-sys",
|
"web-sys",
|
||||||
"yew",
|
"yew",
|
||||||
|
@ -9,6 +9,7 @@ gloo-net = "0.6.0"
|
|||||||
serde = { version = "1.0.217", features = ["derive"] }
|
serde = { version = "1.0.217", features = ["derive"] }
|
||||||
serde-wasm-bindgen = "0.6.5"
|
serde-wasm-bindgen = "0.6.5"
|
||||||
serde_json = "1.0.138"
|
serde_json = "1.0.138"
|
||||||
|
wasm-bindgen = "0.2.100"
|
||||||
wasm-bindgen-futures = "0.4.50"
|
wasm-bindgen-futures = "0.4.50"
|
||||||
web-sys = "0.3.77"
|
web-sys = "0.3.77"
|
||||||
yew = { git = "https://github.com/yewstack/yew/", features = ["csr"] }
|
yew = { git = "https://github.com/yewstack/yew/", features = ["csr"] }
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use gloo_console::log;
|
use gloo_console::log;
|
||||||
|
use wasm_bindgen::JsCast;
|
||||||
use web_sys::HtmlInputElement;
|
use web_sys::HtmlInputElement;
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
|
|
||||||
@ -43,9 +44,6 @@ struct LoginProps {
|
|||||||
|
|
||||||
#[function_component]
|
#[function_component]
|
||||||
fn Login(LoginProps { on_login }: &LoginProps) -> Html {
|
fn Login(LoginProps { on_login }: &LoginProps) -> Html {
|
||||||
let username_node_ref = use_node_ref();
|
|
||||||
let password_node_ref = use_node_ref();
|
|
||||||
|
|
||||||
let username = use_state(|| "".to_owned());
|
let username = use_state(|| "".to_owned());
|
||||||
let password = use_state(|| "".to_owned());
|
let password = use_state(|| "".to_owned());
|
||||||
|
|
||||||
@ -58,21 +56,25 @@ fn Login(LoginProps { on_login }: &LoginProps) -> Html {
|
|||||||
|
|
||||||
let on_username_changed = {
|
let on_username_changed = {
|
||||||
let username = username.clone();
|
let username = username.clone();
|
||||||
let username_node_ref = username_node_ref.clone();
|
Callback::from(move |event: Event| {
|
||||||
Callback::from(move |_| {
|
let input = event
|
||||||
let input = username_node_ref.cast::<HtmlInputElement>().unwrap();
|
.target()
|
||||||
log!("username changed: {}", input.value());
|
.and_then(|t| t.dyn_into::<HtmlInputElement>().ok());
|
||||||
username.set(input.value());
|
if let Some(input) = input {
|
||||||
|
username.set(input.value());
|
||||||
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
let on_password_changed = {
|
let on_password_changed = {
|
||||||
let password = password.clone();
|
let password = password.clone();
|
||||||
let password_node_ref = password_node_ref.clone();
|
Callback::from(move |event: Event| {
|
||||||
Callback::from(move |_| {
|
let input = event
|
||||||
let input = password_node_ref.cast::<HtmlInputElement>().unwrap();
|
.target()
|
||||||
log!("password changed: {}", input.value());
|
.and_then(|t| t.dyn_into::<HtmlInputElement>().ok());
|
||||||
password.set(input.value());
|
if let Some(input) = input {
|
||||||
|
password.set(input.value());
|
||||||
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -80,8 +82,8 @@ fn Login(LoginProps { on_login }: &LoginProps) -> Html {
|
|||||||
<div class="login-form">
|
<div class="login-form">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h1>{"Welcome to Visions VTT"}</h1>
|
<h1>{"Welcome to Visions VTT"}</h1>
|
||||||
<input ref={username_node_ref} type="text" name="username" placeholder="username" onchange={on_username_changed} />
|
<input type="text" name="username" placeholder="username" onchange={on_username_changed} />
|
||||||
<input ref={password_node_ref} type="password" name="password" placeholder="password" onchange={on_password_changed} />
|
<input type="password" name="password" placeholder="password" onchange={on_password_changed} />
|
||||||
<button onclick={on_click}>{"Login"}</button>
|
<button onclick={on_click}>{"Login"}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user