[fractal/fractal-next] content: Show URLs as link for plain text messages



commit c461e724cb2132376d85884149c28e194b5ef268
Author: Kévin Commaille <zecakeh tedomum fr>
Date:   Tue Nov 2 19:20:04 2021 +0100

    content: Show URLs as link for plain text messages

 src/session/content/message_row.rs | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/src/session/content/message_row.rs b/src/session/content/message_row.rs
index 168336a7..bda10ad4 100644
--- a/src/session/content/message_row.rs
+++ b/src/session/content/message_row.rs
@@ -258,13 +258,17 @@ impl MessageRow {
                             .formatted
                             .filter(|m| m.format == MessageFormat::Html)
                         {
-                            markup_links(&html_escape(&formatted.body))
+                            formatted.body
                         } else {
                             message.body
                         };
                         // TODO we need to bind the display name to the sender
                         self.show_text(
-                            &format!("<b>{}</b> {}", event.sender().display_name(), text),
+                            &format!(
+                                "<b>{}</b> {}",
+                                event.sender().display_name(),
+                                linkify(&text)
+                            ),
                             true,
                         );
                     }
@@ -277,7 +281,7 @@ impl MessageRow {
                         {
                             self.show_html(html_blocks);
                         } else {
-                            self.show_text(&message.body, true)
+                            self.show_text(&linkify(&message.body), true)
                         };
                     }
                     MessageType::ServerNotice(message) => {
@@ -289,7 +293,7 @@ impl MessageRow {
                         {
                             self.show_html(html_blocks);
                         } else {
-                            self.show_text(&message.body, false)
+                            self.show_text(&linkify(&message.body), true)
                         };
                     }
                     MessageType::Video(_message) => {}
@@ -343,6 +347,10 @@ impl MessageRow {
     }
 }
 
+fn linkify(text: &str) -> String {
+    markup_links(&html_escape(text))
+}
+
 fn parse_formatted_body(formatted: Option<&FormattedBody>) -> Option<Vec<HtmlBlock>> {
     formatted
         .filter(|m| m.format == MessageFormat::Html)


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