diff options
Diffstat (limited to 'src/components/message.rs')
-rw-r--r-- | src/components/message.rs | 46 |
1 files changed, 35 insertions, 11 deletions
diff --git a/src/components/message.rs b/src/components/message.rs index 78ebeb6..9eb0b09 100644 --- a/src/components/message.rs +++ b/src/components/message.rs @@ -2,7 +2,10 @@ use filamento::chat::MessageStoreFields; use leptos::prelude::*; use reactive_stores::{ArcStore, Store}; -use crate::{message::MacawMessage, user::{get_avatar, get_name, NO_AVATAR}}; +use crate::{ + message::MacawMessage, + user::{NO_AVATAR, get_avatar, get_name}, +}; use super::icon::Delivery; @@ -16,33 +19,54 @@ pub fn Message(message: MacawMessage, major: bool, r#final: bool) -> impl IntoVi if major { view! { <div class:final=r#final class="chat-message major"> - <div class="left"> - <Transition fallback=|| view! { <img class="avatar" src=NO_AVATAR /> } > + <div class="left"> + <Transition fallback=|| view! { <img class="avatar" src=NO_AVATAR /> }> <img class="avatar" src=move || message.user.avatar().get() /> </Transition> - </div> + </div> <div class="middle"> <div class="message-info"> <div class="message-user-name">{name}</div> - <div class="message-timestamp">{move || message.get().timestamp().read().format("%H:%M").to_string()}</div> + <div class="message-timestamp"> + {move || message.get().timestamp().read().format("%H:%M").to_string()} + </div> </div> <div class="message-text"> {move || message.get().body().read().body.clone()} </div> </div> - <div class="right message-delivery">{move || message.get().delivery().get().map(|delivery| view! { <Delivery class:light=true delivery /> } ) }</div> + <div class="right message-delivery"> + {move || { + message + .get() + .delivery() + .get() + .map(|delivery| view! { <Delivery class:light=true delivery /> }) + }} + </div> </div> - }.into_any() + } + .into_any() } else { view! { <div class:final=r#final class="chat-message minor"> <div class="left message-timestamp"> {move || message.get().timestamp().read().format("%H:%M").to_string()} </div> - <div class="middle message-text">{move || message.get().body().read().body.clone()}</div> - <div class="right message-delivery">{move || message.get().delivery().get().map(|delivery| view! { <Delivery delivery /> } ) }</div> + <div class="middle message-text"> + {move || message.get().body().read().body.clone()} + </div> + <div class="right message-delivery"> + {move || { + message + .get() + .delivery() + .get() + .map(|delivery| view! { <Delivery delivery /> }) + }} + </div> </div> - }.into_any() + } + .into_any() } } - |