diff --git a/src/status_im/contexts/chat/messenger/composer/actions/view.cljs b/src/status_im/contexts/chat/messenger/composer/actions/view.cljs index 4d74976953..e5b52f48ca 100644 --- a/src/status_im/contexts/chat/messenger/composer/actions/view.cljs +++ b/src/status_im/contexts/chat/messenger/composer/actions/view.cljs @@ -41,8 +41,13 @@ (defn f-send-button [props state animations window-height images? btn-opacity z-index edit] - (let [{:keys [text-value]} state - customization-color (rf/sub [:profile/customization-color])] + (let [{:keys [text-value]} state + profile-customization-color (rf/sub [:profile/customization-color]) + {:keys [chat-id chat-type] + chat-color :color} (rf/sub [:chats/current-chat-chat-view]) + contact-customization-color (when (= chat-type constants/one-to-one-chat-type) + (rf/sub [:contacts/contact-customization-color-by-address + chat-id]))] (rn/use-effect (fn [] ;; Handle send button opacity animation and z-index when input content changes (if (or (seq @text-value) images?) @@ -60,7 +65,7 @@ [quo/button {:icon-only? true :size 32 - :customization-color customization-color + :customization-color (or contact-customization-color chat-color profile-customization-color) :accessibility-label :send-message-button :on-press #(send-message props state animations window-height edit)} :i/arrow-up]])) diff --git a/src/status_im/contexts/chat/messenger/messages/content/pin/view.cljs b/src/status_im/contexts/chat/messenger/messages/content/pin/view.cljs index 95e7a5e59a..92e7b3f8a7 100644 --- a/src/status_im/contexts/chat/messenger/messages/content/pin/view.cljs +++ b/src/status_im/contexts/chat/messenger/messages/content/pin/view.cljs @@ -29,11 +29,15 @@ (defn pinned-message [{:keys [from quoted-message timestamp-str]}] - (let [[primary-name _] (rf/sub [:contacts/contact-two-names-by-identity from]) - customization-color (rf/sub [:profile/customization-color])] + (let [[primary-name _] (rf/sub [:contacts/contact-two-names-by-identity from]) + one-to-one-chat? (rf/sub [:current-chat/one-to-one-chat?]) + current-chat-color (rf/sub [:chats/current-chat-color]) + contact-customization-color (rf/sub [:contacts/contact-customization-color-by-address from])] [quo/system-message {:type :pinned :pinned-by primary-name - :customization-color customization-color + :customization-color (if one-to-one-chat? + contact-customization-color + current-chat-color) :child [reply/quoted-message quoted-message false true] :timestamp timestamp-str}])) 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 86f0b65087..28af8469f8 100644 --- a/src/status_im/contexts/chat/messenger/messages/content/view.cljs +++ b/src/status_im/contexts/chat/messenger/messages/content/view.cljs @@ -79,16 +79,17 @@ (defn system-message-contact-request [{:keys [chat-id timestamp-str from]} type] - (let [[primary-name _] (rf/sub [:contacts/contact-two-names-by-identity chat-id]) - contact (rf/sub [:contacts/contact-by-address chat-id]) - photo-path (when (seq (:images contact)) (rf/sub [:chats/photo-path chat-id])) - customization-color (rf/sub [:profile/customization-color]) - public-key (rf/sub [:profile/public-key])] + (let [[primary-name _] (rf/sub [:contacts/contact-two-names-by-identity chat-id]) + {:keys [images] + contact-customization-color + :customization-color} (rf/sub [:contacts/contact-by-address chat-id]) + photo-path (when (seq images) (rf/sub [:chats/photo-path chat-id])) + public-key (rf/sub [:profile/public-key])] [quo/system-message {:type type :timestamp timestamp-str :display-name primary-name - :customization-color customization-color + :customization-color contact-customization-color :photo-path photo-path :incoming? (not= public-key from)}])) diff --git a/src/status_im/subs/chats.cljs b/src/status_im/subs/chats.cljs index b9d91f5559..8fa73e7e2f 100644 --- a/src/status_im/subs/chats.cljs +++ b/src/status_im/subs/chats.cljs @@ -187,6 +187,12 @@ :description :last-message]))) +(re-frame/reg-sub + :chats/current-chat-color + :<- [:chats/current-raw-chat] + (fn [current-chat] + (:color current-chat))) + (re-frame/reg-sub :chats/community-channel-ui-details-by-id :<- [:chats/chats] diff --git a/src/status_im/subs/contact.cljs b/src/status_im/subs/contact.cljs index 74c9413209..624302871f 100644 --- a/src/status_im/subs/contact.cljs +++ b/src/status_im/subs/contact.cljs @@ -253,6 +253,13 @@ multiaccount (contact.db/find-contact-by-address contacts address)))) +(re-frame/reg-sub + :contacts/contact-customization-color-by-address + (fn [[_ address]] + [(re-frame/subscribe [:contacts/contact-by-address address])]) + (fn [[contact]] + (:customization-color contact))) + (re-frame/reg-sub :contacts/filtered-active-sections :<- [:contacts/active-sections]