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::*;
use leptos_icons::*; use leptos_icons::*;
use crate::auth::check_auth;
#[component] #[component]
pub fn Personal(logged_in: ReadSignal<bool>) -> impl IntoView { pub fn Personal(logged_in: ReadSignal<bool>) -> impl IntoView {
view! { view! {
@ -32,7 +30,7 @@ pub fn Profile(logged_in: ReadSignal<bool>) -> impl IntoView {
when=move || {logged_in() == true} when=move || {logged_in() == true}
fallback=move || view!{<DropDownNotLoggedIn />} fallback=move || view!{<DropDownNotLoggedIn />}
> >
<h1>Hello</h1> <DropDownLoggedIn/>
</Show> </Show>
</div> </div>
@ -49,3 +47,26 @@ pub fn DropDownNotLoggedIn() -> impl IntoView {
</div> </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>
}
}