diff options
author | 2025-05-10 11:56:30 +0100 | |
---|---|---|
committer | 2025-05-10 11:56:30 +0100 | |
commit | b02e0443050a8def03500bc8bf6729b9c03aebfd (patch) | |
tree | c97675a547af0c4c8b6263c6598e0d7d58f98c47 /src/lib.rs | |
parent | d7990fcda22323ad0de3535c33c601d22457e69f (diff) | |
download | macaw-web-scale.tar.gz macaw-web-scale.tar.bz2 macaw-web-scale.zip |
chore: update leptos to 0.8.2scale
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -26,8 +26,6 @@ use leptos::{ tachys::{dom::document, reactive_graph::bind::GetValue}, task::{spawn, spawn_local}, }; -use leptos_meta::Stylesheet; -use leptos_use::{UseTextareaAutosizeReturn, use_textarea_autosize}; use reactive_stores::{ArcStore, Store, StoreField}; use stylance::import_style; use thiserror::Error; @@ -484,7 +482,7 @@ impl OpenChatsPanel { #[derive(Store)] pub struct UserPresences { #[store(key: JID = |(jid, _)| jid.clone())] - user_presences: HashMap<JID, RwSignal<Presences>>, + user_presences: HashMap<JID, ArcRwSignal<Presences>>, } impl UserPresences { @@ -495,13 +493,13 @@ impl UserPresences { } // TODO: should be a bare jid - pub fn get_user_presences(&mut self, user: &JID) -> RwSignal<Presences> { + pub fn get_user_presences(&mut self, user: &JID) -> ArcRwSignal<Presences> { if let Some(presences) = self.user_presences.get(user) { - *presences + presences.clone() } else { let presences = Presences::new(); - let signal = RwSignal::new(presences); - self.user_presences.insert(user.clone(), signal); + let signal = ArcRwSignal::new(presences); + self.user_presences.insert(user.clone(), signal.clone()); signal } } @@ -671,7 +669,7 @@ fn Macaw( if let Some(resource) = from.resourcepart { let mut presences = Presences::new(); presences.update_presence(resource, presence); - user_presences.write().user_presences.insert(bare_jid, RwSignal::new(presences)); + user_presences.write().user_presences.insert(bare_jid, ArcRwSignal::new(presences)); } } } @@ -859,7 +857,7 @@ pub fn AvatarWithPresence(user: RwSignal<User>) -> impl IntoView { view! { <Transition fallback=|| view! { <img class="avatar" src=NO_AVATAR /> } > <div class="avatar-with-presence"> - <img class="avatar" src=move || avatar.read().as_deref().map(|avatar| avatar.clone()).unwrap_or_default() /> + <img class="avatar" src=move || avatar.get() /> {move || if let Some(icon) = show_icon() { view!{ <IconComponent icon=icon class:presence-show-icon=true /> @@ -1191,7 +1189,7 @@ pub fn Message(message: MacawMessage, major: bool, r#final: bool) -> impl IntoVi <div class:final=r#final class="chat-message major"> <div class="left"> <Transition fallback=|| view! { <img class="avatar" src=NO_AVATAR /> } > - <img class="avatar" src=move || avatar.read().as_deref().map(|avatar| avatar.clone()).unwrap_or_default() /> + <img class="avatar" src=move || avatar.get() /> </Transition> </div> <div class="middle"> |