about summary refs log tree commit diff
path: root/src/screens/Messages/Conversation/MessagesList.tsx
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2024-06-03 20:07:01 -0500
committerGitHub <noreply@github.com>2024-06-04 02:07:01 +0100
commitde93e8de746f3c8a7b1755aaa034043951371ae0 (patch)
tree71ede1691ff2f6c8bd5fa9b55e4d708ad876cdd3 /src/screens/Messages/Conversation/MessagesList.tsx
parentda96fb1ef5a37018b6a238c3614e9b845d8e2686 (diff)
downloadvoidsky-de93e8de746f3c8a7b1755aaa034043951371ae0.tar.zst
[🐴] Post embeds polish (#4339)
* Handle message cleanup

* Handle last message in chat list

* Memoize lastMessage
Diffstat (limited to 'src/screens/Messages/Conversation/MessagesList.tsx')
-rw-r--r--src/screens/Messages/Conversation/MessagesList.tsx26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx
index e6f657b49..f72515ac6 100644
--- a/src/screens/Messages/Conversation/MessagesList.tsx
+++ b/src/screens/Messages/Conversation/MessagesList.tsx
@@ -312,25 +312,19 @@ export function MessagesList({
             })
 
             if (postLinkFacet) {
+              const isAtStart = postLinkFacet.index.byteStart === 0
+              const isAtEnd =
+                postLinkFacet.index.byteEnd === rt.unicodeText.graphemeLength
+
               // remove the post link from the text
-              rt.delete(
-                postLinkFacet.index.byteStart,
-                postLinkFacet.index.byteEnd,
-              )
-
-              // re-trim the text, now that we've removed the post link
-              //
-              // if the post link is at the start of the text, we don't want to leave a leading space
-              // so trim on both sides
-              if (postLinkFacet.index.byteStart === 0) {
-                rt = new RichText({text: rt.text.trim()}, {cleanNewlines: true})
-              } else {
-                // otherwise just trim the end
-                rt = new RichText(
-                  {text: rt.text.trimEnd()},
-                  {cleanNewlines: true},
+              if (isAtStart || isAtEnd) {
+                rt.delete(
+                  postLinkFacet.index.byteStart,
+                  postLinkFacet.index.byteEnd,
                 )
               }
+
+              rt = new RichText({text: rt.text.trim()}, {cleanNewlines: true})
             }
           }
         } catch (error) {