Skip to content

Commit 6d14549

Browse files
committed
[#15655] Resolve messages with markdown on Jump To screen
1 parent 1e4a49f commit 6d14549

File tree

5 files changed

+40
-34
lines changed

5 files changed

+40
-34
lines changed

src/status_im2/contexts/chat/messages/pin/banner/view.cljs

+3-24
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,8 @@
11
(ns status-im2.contexts.chat.messages.pin.banner.view
22
(:require [quo2.core :as quo]
33
[utils.i18n :as i18n]
4-
[utils.re-frame :as rf]))
5-
6-
(defn resolve-message
7-
[parsed-text]
8-
(reduce
9-
(fn [acc {:keys [type literal destination] :as some-text}]
10-
(str acc
11-
(case type
12-
"paragraph"
13-
(resolve-message (:children some-text))
14-
15-
"mention"
16-
(rf/sub [:messages/resolve-mention literal])
17-
18-
"status-tag"
19-
(str "#" literal)
20-
21-
"link"
22-
destination
23-
24-
literal)))
25-
""
26-
parsed-text))
4+
[utils.re-frame :as rf]
5+
[status-im2.utils.message-resolver :as resolver]))
276

287
(defn banner
298
[chat-id]
@@ -37,7 +16,7 @@
3716
latest-pin-text
3817
(cond deleted? (i18n/label :t/message-deleted-for-everyone)
3918
deleted-for-me? (i18n/label :t/message-deleted-for-you)
40-
:else (resolve-message latest-pin-text))]
19+
:else (resolver/resolve-message latest-pin-text))]
4120
[quo/banner
4221
{:latest-pin-text latest-pin-text
4322
:pins-count pins-count

src/status_im2/contexts/shell/cards/view.cljs

+9-6
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77
[react-native.fast-image :as fast-image]
88
[status-im2.constants :as constants]
99
[status-im2.contexts.shell.cards.style :as style]
10-
[status-im2.contexts.shell.constants :as shell.constants]))
10+
[status-im2.contexts.shell.constants :as shell.constants]
11+
[status-im2.utils.message-resolver :as resolver]))
1112

1213
(defn content-container
13-
[type {:keys [content-type data new-notifications? color-50 community-info community-channel]}]
14+
[type {:keys [content-type data new-notifications? color-50 community-info community-channel]
15+
{:keys [text parsed-text source]} :data}]
1416
[rn/view {:style (style/content-container new-notifications?)}
1517
(case type
1618
shell.constants/community-card
@@ -52,7 +54,9 @@
5254
:number-of-lines 1
5355
:ellipsize-mode :tail
5456
:style style/last-message-text}
55-
data]
57+
(if parsed-text
58+
(resolver/resolve-message parsed-text)
59+
text)]
5660

5761
constants/content-type-image
5862
[quo/preview-list
@@ -63,13 +67,12 @@
6367

6468
constants/content-type-sticker
6569
[fast-image/fast-image
66-
{:source (:source data)
70+
{:source source
6771
:style style/sticker}]
6872

69-
7073
constants/content-type-gif
7174
[fast-image/fast-image
72-
{:source (:source data)
75+
{:source source
7376
:style style/gif}]
7477

7578
constants/content-type-audio

src/status_im2/subs/shell.cljs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
(constants/content-type-text
2222
constants/content-type-emoji)
2323
{:content-type constants/content-type-text
24-
:data (get-in last-message [:content :text])}
24+
:data (get last-message :content)}
2525

2626
;; Currently mock image is used as placeholder,
2727
;; as last-message don't have image
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
(ns status-im2.utils.message-resolver
2+
(:require [utils.re-frame :as rf]))
3+
4+
(defn resolve-message
5+
[parsed-text]
6+
(reduce
7+
(fn [acc {:keys [type literal destination] :as some-text}]
8+
(str acc
9+
(case type
10+
"paragraph"
11+
(resolve-message (:children some-text))
12+
13+
"mention"
14+
(rf/sub [:messages/resolve-mention literal])
15+
16+
"status-tag"
17+
(str "#" literal)
18+
19+
"link"
20+
destination
21+
22+
literal)))
23+
""
24+
parsed-text))

src/status_im2/contexts/chat/messages/pin/banner/view_test.cljs src/status_im2/utils/message_resolver_test.cljs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
(ns status-im2.contexts.chat.messages.pin.banner.view-test
2-
(:require [status-im2.contexts.chat.messages.pin.banner.view :as view]
1+
(ns status-im2.utils.message-resolver-test
2+
(:require [status-im2.utils.message-resolver :as resolver]
33
[cljs.test :as t]
44
[utils.re-frame :as rf]))
55

@@ -29,6 +29,6 @@
2929
(t/deftest test-resolve-message
3030
(with-redefs [rf/sub sub]
3131
(t/testing ""
32-
(let [text (view/resolve-message parsed-text)]
32+
(let [text (resolver/resolve-message parsed-text)]
3333
(t/is (= text
3434
"foobar i just mention you here to debug this issue https://foo.bar , no worries"))))))

0 commit comments

Comments
 (0)