From 69294b196f96ef45bdc912185056c9fbbb862926 Mon Sep 17 00:00:00 2001 From: flexsurfer Date: Thu, 14 Mar 2024 13:46:00 +0100 Subject: [PATCH] Display discord bridged posts #19233 (#19248) --- .../status_im/data_store/activities_test.cljs | 2 ++ src/legacy/status_im/data_store/messages.cljs | 8 ++++- .../status_im/data_store/messages_test.cljs | 1 + src/status_im/constants.cljs | 1 + .../chat/messenger/messages/content/view.cljs | 33 +++++++++++++++++++ 5 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/legacy/status_im/data_store/activities_test.cljs b/src/legacy/status_im/data_store/activities_test.cljs index 10df433a09..31d7811125 100644 --- a/src/legacy/status_im/data_store/activities_test.cljs +++ b/src/legacy/status_im/data_store/activities_test.cljs @@ -44,6 +44,7 @@ :line-count nil :links nil :text nil} + :bridge-message nil :outgoing false} :message nil :reply-message {:quoted-message nil @@ -61,6 +62,7 @@ :line-count nil :links nil :text nil} + :bridge-message nil :outgoing false}} (-> raw-notification store/<-rpc diff --git a/src/legacy/status_im/data_store/messages.cljs b/src/legacy/status_im/data_store/messages.cljs index d5d389e99f..3064a542f6 100644 --- a/src/legacy/status_im/data_store/messages.cljs +++ b/src/legacy/status_im/data_store/messages.cljs @@ -82,7 +82,13 @@ :albumImagesCount :album-images-count :displayName :display-name :linkPreviews :link-previews - :statusLinkPreviews :status-link-previews}) + :statusLinkPreviews :status-link-previews + :bridgeMessage :bridge-message}) + (update :bridge-message + set/rename-keys + {:bridgeName :bridge-name + :userName :user-name + :userAvatar :user-avatar}) (update :link-previews #(map <-link-preview-rpc %)) (update :status-link-previews #(map <-status-link-previews-rpc %)) (update :quoted-message diff --git a/src/legacy/status_im/data_store/messages_test.cljs b/src/legacy/status_im/data_store/messages_test.cljs index 3b5b496aeb..924fdef6db 100644 --- a/src/legacy/status_im/data_store/messages_test.cljs +++ b/src/legacy/status_im/data_store/messages_test.cljs @@ -21,6 +21,7 @@ :image nil :response-to "a" :links nil} + :bridge-message nil :whisper-timestamp 1 :contact-verification-state 1 :contact-request-state 2 diff --git a/src/status_im/constants.cljs b/src/status_im/constants.cljs index e6ef92c5a1..c86bbf8525 100644 --- a/src/status_im/constants.cljs +++ b/src/status_im/constants.cljs @@ -19,6 +19,7 @@ (def ^:const content-type-system-message-mutual-event-sent 15) (def ^:const content-type-system-message-mutual-event-accepted 16) (def ^:const content-type-system-message-mutual-event-removed 17) +(def ^:const content-type-bridge-message 18) ;; Not implemented in status-go, only used for testing/ui work (def ^:const content-type-gif 100) diff --git a/src/status_im/contexts/chat/messenger/messages/content/view.cljs b/src/status_im/contexts/chat/messenger/messages/content/view.cljs index ef5900ce05..77eb1df483 100644 --- a/src/status_im/contexts/chat/messenger/messages/content/view.cljs +++ b/src/status_im/contexts/chat/messenger/messages/content/view.cljs @@ -1,10 +1,12 @@ (ns status-im.contexts.chat.messenger.messages.content.view (:require + [clojure.string :as string] [legacy.status-im.ui.screens.chat.message.legacy-view :as old-message] [quo.core :as quo] [quo.foundations.colors :as colors] [quo.theme :as quo.theme] [react-native.core :as rn] + [react-native.fast-image :as fast-image] [react-native.gesture :as gesture] [react-native.platform :as platform] [reagent.core :as reagent] @@ -113,6 +115,34 @@ constants/content-type-system-message-mutual-event-sent [system-message-contact-request message-data :contact-request]))) +(defn bridge-message-content + [{:keys [bridge-message timestamp]}] + (let [{:keys [user-avatar user-name + bridge-name content]} bridge-message + user-name (when (string? user-name) + (-> user-name + (string/replace "" "") + (string/replace "" "")))] + [rn/view + {:style {:flex-direction :row + :padding-horizontal 12 + :padding-top 4}} + [fast-image/fast-image + {:source {:uri user-avatar} + :style {:width 32 + :margin-top 4 + :border-radius 16 + :height 32}}] + [rn/view {:margin-left 8 :flex 1} + [quo/author + {:primary-name (str user-name) + :short-chat-key (str "Bridged from " bridge-name) + :time-str (datetime/timestamp->time timestamp)}] + [quo/text + {:size :paragraph-1 + :style {:line-height 22.75}} + content]]])) + (declare on-long-press) (defn- user-message-content-internal @@ -284,6 +314,9 @@ keyboard-shown?)) context] + (= content-type constants/content-type-bridge-message) + [bridge-message-content message-data] + :else [user-message-content {:message-data message-data