about summary refs log tree commit diff
path: root/src/view/com/util/RichText.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/com/util/RichText.tsx')
-rw-r--r--src/view/com/util/RichText.tsx10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/view/com/util/RichText.tsx b/src/view/com/util/RichText.tsx
index 3c54094ba..a67f90a63 100644
--- a/src/view/com/util/RichText.tsx
+++ b/src/view/com/util/RichText.tsx
@@ -77,7 +77,9 @@ function* toSegments(text: string, entities: Entity[]) {
       let subtext = text.slice(currEnt.index.start, currEnt.index.end)
       if (
         !subtext.trim() ||
-        stripUsername(subtext) !== stripUsername(currEnt.value)
+        (currEnt.type === 'mention' &&
+          stripUsername(subtext) !== stripUsername(currEnt.value)) ||
+        (currEnt.type === 'link' && !isSameLink(subtext, currEnt.value))
       ) {
         // dont yield links to empty strings or strings that don't match the entity value
         yield subtext
@@ -99,3 +101,9 @@ function* toSegments(text: string, entities: Entity[]) {
 function stripUsername(v: string): string {
   return v.trim().replace('@', '')
 }
+
+function isSameLink(a: string, b: string) {
+  a = a.startsWith('http') ? a : `https://${a}`
+  b = b.startsWith('http') ? b : `https://${b}`
+  return a === b
+}