Skip to content

Commit 3da86c0

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

File tree

5 files changed

+48
-37
lines changed

5 files changed

+48
-37
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.simple-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

+17-9
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
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.simple-message-resolver :as resolver]))
1112

1213
(defn content-container
1314
[type {:keys [content-type data new-notifications? color-50 community-info community-channel]}]
@@ -46,13 +47,21 @@
4647

4748
(case content-type
4849
constants/content-type-text
49-
[quo/text
50-
{:size :paragraph-2
51-
:weight :regular
52-
:number-of-lines 1
53-
:ellipsize-mode :tail
54-
:style style/last-message-text}
55-
data]
50+
(if (:parsed-text data)
51+
[quo/text
52+
{:size :paragraph-2
53+
:weight :regular
54+
:number-of-lines 1
55+
:ellipsize-mode :tail
56+
:style style/last-message-text}
57+
(resolver/resolve-message (:parsed-text data))]
58+
[quo/text
59+
{:size :paragraph-2
60+
:weight :regular
61+
:number-of-lines 1
62+
:ellipsize-mode :tail
63+
:style style/last-message-text}
64+
(:text data)])
5665

5766
constants/content-type-image
5867
[quo/preview-list
@@ -66,7 +75,6 @@
6675
{:source (:source data)
6776
:style style/sticker}]
6877

69-
7078
constants/content-type-gif
7179
[fast-image/fast-image
7280
{:source (:source data)

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
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
(ns status-im2.utils.simple-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/simple_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.simple-message-resolver-test
2+
(:require [status-im2.utils.simple-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)