diff options
| -rw-r--r-- | src/lib.rs | 18 | 
1 files changed, 12 insertions, 6 deletions
@@ -1015,7 +1015,7 @@ pub fn PersonalStatusMenu(user: Store<User>, set_open: WriteSignal<bool>) -> imp              <div class="user">                  <AvatarWithPresence user=user />                  <div class="user-info"> -                    <div class="nick">{move || get_name(user)}</div> +                    <div class="nick">{move || get_name(user, false)}</div>                      <div class="jid">{move || user.jid().with(|jid| jid.to_string())}</div>                  </div>              </div> @@ -1237,7 +1237,7 @@ pub fn AvatarWithPresence(user: Store<User>) -> impl IntoView {  #[component]  pub fn ChatViewHeader(chat: MacawChat) -> impl IntoView {      let chat_user = <ArcStore<filamento::user::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          <ArcStore<filamento::chat::Message> as Clone>::clone(&message.message).into();      let message_user = <ArcStore<filamento::user::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.contact;      let contact_user: Store<User> =          <ArcStore<filamento::user::User> 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<OpenChatsPanel> =          use_context().expect("no open chats panel store in context"); @@ -2568,8 +2568,14 @@ pub async fn get_avatar(user: Store<User>) -> String {      }  } -pub fn get_name(user: Store<User>) -> String { +pub fn get_name(user: Store<User>, note_to_self: bool) -> String {      let roster: Store<Roster> = 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<User> =          <ArcStore<filamento::user::User> as Clone>::clone(&chat.user).into();      let message_message: Store<Message> = <ArcStore<Message> 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;  | 
