Skip to content

Commit 472f1a9

Browse files
flexsurfercammellos
authored andcommitted
Display discord bridged posts #19233 (#19248)
1 parent 43573d1 commit 472f1a9

File tree

5 files changed

+44
-85
lines changed

5 files changed

+44
-85
lines changed

src/legacy/status_im/data_store/activities_test.cljs

+1-84
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(ns legacy.status-im.data-store.activities-test
22
(:require
3-
[cljs.test :refer [deftest is testing]]
3+
[cljs.test :refer [deftest is]]
44
[legacy.status-im.data-store.activities :as store]
55
[status-im.constants :as constants]
66
[status-im.contexts.shell.activity-center.notification-types :as notification-types]))
@@ -18,89 +18,6 @@
1818
:name chat-name
1919
:replyMessage {}})
2020

21-
(deftest <-rpc-test
22-
(testing "renames keys"
23-
(is (= {:name chat-name
24-
:chat-id chat-id
25-
:contact-verification-status constants/contact-verification-status-pending}
26-
(-> raw-notification
27-
store/<-rpc
28-
(dissoc :last-message :message :reply-message)))))
29-
30-
(testing "transforms messages from RPC response"
31-
(is
32-
(= {:last-message {:quoted-message nil
33-
:outgoing-status nil
34-
:command-parameters nil
35-
:link-previews []
36-
:content {:sticker nil
37-
:rtl? nil
38-
:ens-name nil
39-
:parsed-text nil
40-
:response-to nil
41-
:chat-id nil
42-
:image nil
43-
:line-count nil
44-
:links nil
45-
:text nil}
46-
:outgoing false}
47-
:message nil
48-
:reply-message {:quoted-message nil
49-
:outgoing-status nil
50-
:command-parameters nil
51-
:link-previews []
52-
:content {:sticker nil
53-
:rtl? nil
54-
:ens-name nil
55-
:parsed-text nil
56-
:response-to nil
57-
:chat-id nil
58-
:image nil
59-
:line-count nil
60-
:links nil
61-
:text nil}
62-
:outgoing false}}
63-
(-> raw-notification
64-
store/<-rpc
65-
(select-keys [:last-message :message :reply-message])))))
66-
67-
(testing "augments notification based on its type"
68-
(is (= {:chat-name chat-name
69-
:chat-type constants/private-group-chat-type
70-
:name chat-name}
71-
(-> raw-notification
72-
(assoc :type notification-types/reply)
73-
store/<-rpc
74-
(select-keys [:name :chat-type :chat-name :public? :group-chat]))))
75-
76-
(is (= {:chat-name chat-name
77-
:chat-type constants/private-group-chat-type
78-
:name chat-name}
79-
(-> raw-notification
80-
(assoc :type notification-types/mention)
81-
store/<-rpc
82-
(select-keys [:name :chat-type :chat-name :public? :group-chat]))))
83-
84-
(is (= {:chat-name chat-name
85-
:chat-type constants/private-group-chat-type
86-
:group-chat true
87-
:name chat-name
88-
:public? false}
89-
(-> raw-notification
90-
(assoc :type notification-types/private-group-chat)
91-
store/<-rpc
92-
(select-keys [:name :chat-type :chat-name :public? :group-chat]))))
93-
94-
(is (= {:chat-name chat-name
95-
:chat-type constants/one-to-one-chat-type
96-
:group-chat false
97-
:name chat-name
98-
:public? false}
99-
(-> raw-notification
100-
(assoc :type notification-types/one-to-one-chat)
101-
store/<-rpc
102-
(select-keys [:name :chat-type :chat-name :public? :group-chat]))))))
103-
10421
(deftest remove-pending-contact-request-test
10522
(is (true? (store/pending-contact-request?
10623
"contact-id"

src/legacy/status_im/data_store/messages.cljs

+8-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,14 @@
5353
:new :new?
5454
:albumImagesCount :album-images-count
5555
:displayName :display-name
56-
:linkPreviews :link-previews})
56+
:linkPreviews :link-previews
57+
:statusLinkPreviews :status-link-previews
58+
:bridgeMessage :bridge-message})
59+
(update :bridge-message
60+
set/rename-keys
61+
{:bridgeName :bridge-name
62+
:userName :user-name
63+
:userAvatar :user-avatar})
5764
(update :link-previews #(map <-link-preview-rpc %))
5865
(update :quoted-message
5966
set/rename-keys

src/legacy/status_im/data_store/messages_test.cljs

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
:image nil
2222
:response-to "a"
2323
:links nil}
24+
:bridge-message nil
2425
:whisper-timestamp 1
2526
:contact-verification-state 1
2627
:contact-request-state 2

src/status_im/constants.cljs

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
(def ^:const content-type-system-message-mutual-event-sent 15)
2020
(def ^:const content-type-system-message-mutual-event-accepted 16)
2121
(def ^:const content-type-system-message-mutual-event-removed 17)
22+
(def ^:const content-type-bridge-message 18)
2223

2324
;; Not implemented in status-go, only used for testing/ui work
2425
(def ^:const content-type-gif 100)

src/status_im/contexts/chat/messenger/messages/content/view.cljs

+33
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
(ns status-im.contexts.chat.messenger.messages.content.view
22
(:require
3+
[clojure.string :as string]
34
[legacy.status-im.ui.screens.chat.message.legacy-view :as old-message]
45
[quo.core :as quo]
56
[quo.foundations.colors :as colors]
67
[quo.theme :as quo.theme]
78
[react-native.core :as rn]
9+
[react-native.fast-image :as fast-image]
810
[react-native.gesture :as gesture]
911
[react-native.platform :as platform]
1012
[reagent.core :as reagent]
@@ -113,6 +115,34 @@
113115
constants/content-type-system-message-mutual-event-sent
114116
[system-message-contact-request message-data :contact-request])))
115117

118+
(defn bridge-message-content
119+
[{:keys [bridge-message timestamp]}]
120+
(let [{:keys [user-avatar user-name
121+
bridge-name content]} bridge-message
122+
user-name (when (string? user-name)
123+
(-> user-name
124+
(string/replace "<b>" "")
125+
(string/replace "</b>" "")))]
126+
[rn/view
127+
{:style {:flex-direction :row
128+
:padding-horizontal 12
129+
:padding-top 4}}
130+
[fast-image/fast-image
131+
{:source {:uri user-avatar}
132+
:style {:width 32
133+
:margin-top 4
134+
:border-radius 16
135+
:height 32}}]
136+
[rn/view {:margin-left 8 :flex 1}
137+
[quo/author
138+
{:primary-name (str user-name)
139+
:short-chat-key (str "Bridged from " bridge-name)
140+
:time-str (datetime/timestamp->time timestamp)}]
141+
[quo/text
142+
{:size :paragraph-1
143+
:style {:line-height 22.75}}
144+
content]]]))
145+
116146
(declare on-long-press)
117147

118148
(defn- user-message-content-internal
@@ -284,6 +314,9 @@
284314
keyboard-shown?))
285315
context]
286316

317+
(= content-type constants/content-type-bridge-message)
318+
[bridge-message-content message-data]
319+
287320
:else
288321
[user-message-content
289322
{:message-data message-data

0 commit comments

Comments
 (0)