feat: simplify login example
This commit is contained in:
1 parent
babe862739
commit
4d965c8571
1 file changed
+7
-24
+7
-24
@@ -10,39 +10,22 @@ fn main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn app(cx: Scope) -> Element {
|
fn app(cx: Scope) -> Element {
|
||||||
cx.render(rsx! {
|
|
||||||
Router {
|
|
||||||
Route { to: "/", home() }
|
|
||||||
Route { to: "/login", login() }
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
fn home(cx: Scope) -> Element {
|
|
||||||
cx.render(rsx! {
|
|
||||||
h1 { "Welcome Home" }
|
|
||||||
Link { to: "/login", "Login" }
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
fn login(cx: Scope) -> Element {
|
|
||||||
let service = use_router(&cx);
|
|
||||||
|
|
||||||
let onsubmit = move |evt: FormEvent| {
|
let onsubmit = move |evt: FormEvent| {
|
||||||
to_owned![service];
|
|
||||||
let username = evt.values["username"].clone();
|
|
||||||
let password = evt.values["password"].clone();
|
|
||||||
|
|
||||||
cx.spawn(async move {
|
cx.spawn(async move {
|
||||||
let resp = reqwest::Client::new()
|
let resp = reqwest::Client::new()
|
||||||
.post("http://localhost/login")
|
.post("http://localhost/login")
|
||||||
.form(&[("username", username), ("password", password)])
|
.form(&[
|
||||||
|
("username", &evt.values["username"]),
|
||||||
|
("password", &evt.values["password"]),
|
||||||
|
])
|
||||||
.send()
|
.send()
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
match resp {
|
match resp {
|
||||||
// Parse data from here, such as storing a response token
|
// Parse data from here, such as storing a response token
|
||||||
Ok(_data) => service.push_route("/"),
|
Ok(_data) => {
|
||||||
|
println!("Login successful");
|
||||||
|
}
|
||||||
|
|
||||||
//Handle any errors from the fetch here
|
//Handle any errors from the fetch here
|
||||||
Err(_err) => {}
|
Err(_err) => {}
|
||||||
|
|||||||
Reference in new issue
Block a user