diff --git a/src/components/personal.rs b/src/components/personal.rs index e9fb5ea..c790b87 100644 --- a/src/components/personal.rs +++ b/src/components/personal.rs @@ -1,8 +1,8 @@ use leptos::leptos_dom::*; use leptos::*; use leptos_icons::*; -use crate::auth::get_user; use crate::auth::logout; +use crate::util::state::GlobalState; #[component] pub fn Personal() -> impl IntoView { @@ -16,54 +16,66 @@ pub fn Personal() -> impl IntoView { #[component] pub fn Profile() -> impl IntoView { let (dropdown_open, set_dropdown_open) = create_signal(false); - let (image_error, set_image_error) = create_signal(false); - let user = create_local_resource(move || dropdown_open.get(), |_| async move { get_user().await }); - - let open_dropdown = move |_| { + let user = GlobalState::logged_in_user(); + + let open_dropdown = move |_| { set_dropdown_open.update(|value| *value = !*value); }; let user_profile_picture = move || { user.get().and_then(|user| { - user.ok().map(|user| format!("/assets/images/profile/{}.webp", user.id.unwrap())) + if let Some(user) = user { + if user.id.is_none() { + return None; + } + Some(format!("/assets/images/profile/{}.webp", user.id.unwrap())) + } else { + None + } }) }; view! {