From 4a5aa6579f5184c443ffbe80ce93e0daa0926826 Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Mon, 2 Jun 2025 21:16:18 +0100 Subject: fix: put reactive calls in reactive contexts to update avatar on avatar update --- src/components/message.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'src/components/message.rs') diff --git a/src/components/message.rs b/src/components/message.rs index 5deccdd..f55c5f7 100644 --- a/src/components/message.rs +++ b/src/components/message.rs @@ -8,11 +8,8 @@ use super::icon::Delivery; #[component] pub fn Message(message: MacawMessage, major: bool, r#final: bool) -> impl IntoView { - let message_message: Store = - as Clone>::clone(&message.get()).into(); - let message_user = as Clone>::clone(&message.user.get()).into(); - let avatar = LocalResource::new(move || get_avatar(message_user)); - let name = move || get_name(message_user, false); + let avatar = LocalResource::new(move || get_avatar(message.user.get().into())); + let name = move || get_name(message.user.get().into(), false); // TODO: chrono-humanize? // TODO: if final, show delivery not only on hover. @@ -28,23 +25,23 @@ pub fn Message(message: MacawMessage, major: bool, r#final: bool) -> impl IntoVi
{name}
-
{move || message_message.timestamp().read().format("%H:%M").to_string()}
+
{move || message.get().timestamp().read().format("%H:%M").to_string()}
- {move || message_message.body().read().body.clone()} + {move || message.get().body().read().body.clone()}
-
{move || message_message.delivery().get().map(|delivery| view! { } ) }
+
{move || message.get().delivery().get().map(|delivery| view! { } ) }
}.into_any() } else { view! {
- {move || message_message.timestamp().read().format("%H:%M").to_string()} + {move || message.get().timestamp().read().format("%H:%M").to_string()}
-
{move || message_message.body().read().body.clone()}
-
{move || message_message.delivery().get().map(|delivery| view! { } ) }
+
{move || message.get().body().read().body.clone()}
+
{move || message.get().delivery().get().map(|delivery| view! { } ) }
}.into_any() } -- cgit