[fractal] room-history: Use Pills for emotes



commit bbd5cef8cc82aeb395bf5445b9000a7fb350964f
Author: Kévin Commaille <zecakeh tedomum fr>
Date:   Sun May 15 15:52:29 2022 +0200

    room-history: Use Pills for emotes

 src/session/content/room_history/message_row/text.rs | 10 +++-------
 src/session/user.rs                                  |  6 ++++++
 2 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/src/session/content/room_history/message_row/text.rs 
b/src/session/content/room_history/message_row/text.rs
index 4921985d6..05d379872 100644
--- a/src/session/content/room_history/message_row/text.rs
+++ b/src/session/content/room_history/message_row/text.rs
@@ -105,14 +105,10 @@ impl MessageText {
     ) {
         if let Some(body) = formatted
             .filter(is_valid_formatted_body)
-            .and_then(|formatted| {
-                let body = format!("<b>{}</b> {}", sender.display_name(), formatted.body);
-
-                parse_formatted_body(&body).map(|_| formatted.body)
-            })
+            .and_then(|formatted| parse_formatted_body(&formatted.body).map(|_| formatted.body))
         {
             let formatted = FormattedBody {
-                body: format!("<b>{}</b> {}", sender.display_name(), strip_reply(&body)),
+                body: format!("{} {}", sender.html_mention(), strip_reply(&body)),
                 format: MessageFormat::Html,
             };
 
@@ -120,7 +116,7 @@ impl MessageText {
             self.build_html(html, room);
         } else {
             self.build_text(
-                format!("<b>{}</b> {}", sender.display_name(), linkify(&body)),
+                format!("{} {}", sender.html_mention(), linkify(&body)),
                 WithMentions::Yes(room),
             );
         }
diff --git a/src/session/user.rs b/src/session/user.rs
index 0c62129f8..b6b419067 100644
--- a/src/session/user.rs
+++ b/src/session/user.rs
@@ -272,6 +272,12 @@ pub trait UserExt: IsA<User> {
         let user = self.upcast_ref();
         Pill::for_user(user)
     }
+
+    /// Get the HTML mention representation for this `User`.
+    fn html_mention(&self) -> String {
+        let uri = self.user_id().matrix_to_uri();
+        format!("<a href=\"{uri}\">{}</a>", self.display_name())
+    }
 }
 
 impl<T: IsA<User>> UserExt for T {}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]