diff options
Diffstat (limited to 'src/components/avatar.rs')
-rw-r--r-- | src/components/avatar.rs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/components/avatar.rs b/src/components/avatar.rs index 9265ef7..292173e 100644 --- a/src/components/avatar.rs +++ b/src/components/avatar.rs @@ -2,13 +2,12 @@ use filamento::{presence::PresenceType, user::User}; use leptos::prelude::*; use reactive_stores::Store; -use crate::{components::icon::{show_to_icon, IconComponent}, icon::Icon, user::get_avatar, user_presences::UserPresences}; +use crate::{components::icon::{show_to_icon, IconComponent}, icon::Icon, user::{get_avatar, MacawUser}, user_presences::UserPresences}; #[component] -pub fn AvatarWithPresence(user: Store<User>) -> impl IntoView { - let avatar = LocalResource::new(move || get_avatar(user)); +pub fn AvatarWithPresence(user: MacawUser) -> impl IntoView { let user_presences: Store<UserPresences> = use_context().expect("no user presences in context"); - let presence = move || user_presences.write().get_user_presences(&user.read().jid).read().presence(); + let presence = move || user_presences.write().get_user_presences(&user.get().read().jid).read().presence(); let show_icon = move || presence().map(|(_, presence)| { match presence.presence { PresenceType::Online(online) => if let Some(show) = online.show { @@ -22,7 +21,7 @@ pub fn AvatarWithPresence(user: Store<User>) -> impl IntoView { view! { <div class="avatar-with-presence"> - <img class="avatar" src=move || avatar.get() /> + <img class="avatar" src=move || user.avatar().get() /> {move || if let Some(icon) = show_icon() { view!{ <IconComponent icon=icon class:presence-show-icon=true /> |