From 39e6a0da29bd7129c572d56590bdb7acd6a580b9 Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Sat, 24 May 2025 17:30:07 +0100 Subject: feat: show chat for messaging oneself as "Note to self" --- src/lib.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 0f37441..28e973b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1015,7 +1015,7 @@ pub fn PersonalStatusMenu(user: Store, set_open: WriteSignal) -> imp
@@ -1237,7 +1237,7 @@ pub fn AvatarWithPresence(user: Store) -> impl IntoView { #[component] pub fn ChatViewHeader(chat: MacawChat) -> impl IntoView { let chat_user = as Clone>::clone(&chat.user).into(); - let name = move || get_name(chat_user); + let name = move || get_name(chat_user, true); let jid = move || chat_user.jid().read().to_string(); view! { @@ -1574,7 +1574,7 @@ pub fn Message(message: MacawMessage, major: bool, r#final: bool) -> impl IntoVi as Clone>::clone(&message.message).into(); let message_user = as Clone>::clone(&message.user).into(); let avatar = LocalResource::new(move || get_avatar(message_user)); - let name = move || get_name(message_user); + let name = move || get_name(message_user, false); // TODO: chrono-humanize? // TODO: if final, show delivery not only on hover. @@ -2505,7 +2505,7 @@ fn RosterListItem(contact: MacawContact) -> impl IntoView { let contact_contact: Store = contact.contact; let contact_user: Store = as Clone>::clone(&contact.user).into(); - let name = move || get_name(contact_user); + let name = move || get_name(contact_user, false); let open_chats: Store = use_context().expect("no open chats panel store in context"); @@ -2568,8 +2568,14 @@ pub async fn get_avatar(user: Store) -> String { } } -pub fn get_name(user: Store) -> String { +pub fn get_name(user: Store, note_to_self: bool) -> String { let roster: Store = use_context().expect("no roster in context"); + if note_to_self { + let client: Client = use_context().expect("no client in context"); + if *client.jid == *user.jid().read() { + return "Note to self".to_string() + } + } if let Some(name) = roster .contacts() .read() @@ -2618,7 +2624,7 @@ fn ChatsListItem(chat: MacawChat, message: MacawMessage) -> impl IntoView { let chat_user: Store = as Clone>::clone(&chat.user).into(); let message_message: Store = as Clone>::clone(&message.message).into(); - let name = move || get_name(chat_user); + let name = move || get_name(chat_user, true); // TODO: store fine-grained reactivity let latest_message_body = move || message_message.body().get().body; -- cgit