added a logout button

This commit is contained in:
Danny Zou 2024-04-12 19:48:39 -04:00
parent 8556aa21ff
commit 79903c779a

View File

@ -2,8 +2,6 @@ use leptos::leptos_dom::*;
use leptos::*;
use leptos_icons::*;
use crate::auth::check_auth;
#[component]
pub fn Personal(logged_in: ReadSignal<bool>) -> impl IntoView {
view! {
@ -32,7 +30,7 @@ pub fn Profile(logged_in: ReadSignal<bool>) -> impl IntoView {
when=move || {logged_in() == true}
fallback=move || view!{<DropDownNotLoggedIn />}
>
<h1>Hello</h1>
<DropDownLoggedIn/>
</Show>
</div>
@ -49,3 +47,26 @@ pub fn DropDownNotLoggedIn() -> impl IntoView {
</div>
}
}
#[component]
pub fn DropDownLoggedIn() -> impl IntoView {
use crate::auth::logout;
let logout = move |_ev: leptos::ev::MouseEvent| {
spawn_local(async move {
let _logout_result = logout().await;
if let Err(err) = _logout_result {
log!("Error logging out: {:?}", err);
} else {
log!("Logged out Successfully!");
leptos_router::use_navigate()("/login", Default::default());
}
});
};
view! {
<div class="dropdown-logged-in">
<h1>Logged in!</h1>
<button on:click=logout class="auth-button">Log Out</button>
</div>
}
}