summaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs18
1 files changed, 12 insertions, 6 deletions
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<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;