summaryrefslogtreecommitdiffstats
path: root/src/components/avatar.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/avatar.rs')
-rw-r--r--src/components/avatar.rs9
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 />