added functionality to login page.

modified:   src/pages/login.rs
This commit is contained in:
Danny Zou 2024-02-18 02:01:34 -05:00
parent c30ba689b1
commit 2ab1f44317

View File

@ -2,12 +2,27 @@ use leptos::leptos_dom::*;
use leptos::*;
use leptos_icons::IoIcon::*;
use leptos_icons::*;
use crate::auth::login;
#[component]
pub fn Login() -> impl IntoView {
let (username, set_username) = create_signal("".to_string());
let (username_or_email, set_username_or_email) = create_signal("".to_string());
let (password, set_password) = create_signal("".to_string());
let on_submit = move |ev: leptos::ev::SubmitEvent| {
ev.prevent_default();
spawn_local(async move {
if let Err(err) = login(username_or_email.get(), password.get()).await {
// Handle the error here, e.g., log it or display to the user
log!("Error logging in: {:?}", err);
} else {
// Redirect to the login page
log!("Logged in Successfully!");
}
});
};
view! {
<div class="page-container">
<div class="login-container">
@ -15,14 +30,14 @@ pub fn Login() -> impl IntoView {
<div class="header">
<h1>LibreTunes</h1>
</div>
<form class="login-form" action="POST">
<form class="login-form" action="POST" on:submit=on_submit>
<div class="input-box">
<input class="login-info" type="text" required
on:input = move |ev| {
set_username(event_target_value(&ev));
log!("username changed to: {}", username.get());
set_username_or_email(event_target_value(&ev));
log!("username/email changed to: {}", username_or_email.get());
}
prop:value=username
prop:value=username_or_email
/>
<span>Username/Email</span>
<i></i>