From 4020b4fdef684ace1ea126edc86b6c408e8c9964 Mon Sep 17 00:00:00 2001 From: Ibrahem Khalil Date: Tue, 14 Feb 2023 10:50:09 +0200 Subject: [PATCH] Fix pinned messages (#14787) --- .../contexts/chat/messages/content/style.cljs | 6 +++--- .../contexts/chat/messages/content/view.cljs | 6 +++--- .../contexts/chat/messages/drawers/view.cljs | 18 ++++++++++-------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/status_im2/contexts/chat/messages/content/style.cljs b/src/status_im2/contexts/chat/messages/content/style.cljs index 1db71378ee..12eb476639 100644 --- a/src/status_im2/contexts/chat/messages/content/style.cljs +++ b/src/status_im2/contexts/chat/messages/content/style.cljs @@ -2,10 +2,10 @@ (:require [quo2.foundations.colors :as colors])) (defn message-container - [in-pinned-view? pinned mentioned last-in-group?] - (merge (when (and (not in-pinned-view?) (or mentioned pinned)) + [in-pinned-view? pinned-by mentioned last-in-group?] + (merge (when (and (not in-pinned-view?) (or mentioned pinned-by)) {:background-color colors/primary-50-opa-5 :margin-bottom 4}) - (when (or mentioned pinned last-in-group?) + (when (or mentioned pinned-by last-in-group?) {:margin-top 8}) {:border-radius 16})) diff --git a/src/status_im2/contexts/chat/messages/content/view.cljs b/src/status_im2/contexts/chat/messages/content/view.cljs index 8de12d1b53..34c240a2a5 100644 --- a/src/status_im2/contexts/chat/messages/content/view.cljs +++ b/src/status_im2/contexts/chat/messages/content/view.cljs @@ -156,14 +156,14 @@ [status/status outgoing-status])]]]])))]) (defn message-with-reactions - [{:keys [pinned pinned-by mentioned in-pinned-view? content-type + [{:keys [pinned-by mentioned in-pinned-view? content-type last-in-group? message-id messages-ids] :as message-data} {:keys [chat-id] :as context}] [rn/view - {:style (style/message-container in-pinned-view? pinned mentioned last-in-group?) + {:style (style/message-container in-pinned-view? pinned-by mentioned last-in-group?) :accessibility-label :chat-item} - (when pinned + (when pinned-by [pin/pinned-by-view pinned-by]) (if (#{constants/content-type-system-text constants/content-type-community constants/content-type-contact-request} diff --git a/src/status_im2/contexts/chat/messages/drawers/view.cljs b/src/status_im2/contexts/chat/messages/drawers/view.cljs index 1d5417dbd5..778a528d9f 100644 --- a/src/status_im2/contexts/chat/messages/drawers/view.cljs +++ b/src/status_im2/contexts/chat/messages/drawers/view.cljs @@ -10,16 +10,18 @@ [status-im2.common.not-implemented :as not-implemented])) (defn pin-message - [{:keys [chat-id pinned] :as message-data}] - (let [pinned-messages (rf/sub [:chats/pinned chat-id])] - (if (and (not pinned) (> (count pinned-messages) 2)) + [{:keys [chat-id pinned pinned-by] :as message-data}] + (let [pinned-messages (rf/sub [:chats/pinned chat-id]) + message-not-pinned? (and (empty? pinned-by) (not pinned))] + (if (and message-not-pinned? (> (count pinned-messages) 2)) (do (js/setTimeout (fn [] (rf/dispatch [:dismiss-keyboard])) 500) (rf/dispatch [:pin-message/show-pin-limit-modal chat-id])) - (rf/dispatch [:pin-message/send-pin-message (assoc message-data :pinned (not pinned))])))) + (rf/dispatch [:pin-message/send-pin-message + (assoc message-data :pinned message-not-pinned?)])))) (defn get-actions - [{:keys [outgoing content pinned outgoing-status] :as message-data} + [{:keys [outgoing content pinned-by outgoing-status] :as message-data} {:keys [edit-enabled show-input? can-delete-message-for-everyone? community? message-pin-enabled]}] (concat (when (and outgoing edit-enabled) @@ -44,12 +46,12 @@ (when message-pin-enabled [{:type :main :on-press #(pin-message message-data) - :label (i18n/label (if pinned + :label (i18n/label (if pinned-by (if community? :t/unpin-from-channel :t/unpin-from-chat) (if community? :t/pin-to-channel :t/pin-to-chat))) :icon :i/pin - :id (if pinned :unpin :pin)}]) - (when-not pinned + :id (if pinned-by :unpin :pin)}]) + (when-not pinned-by [{:type :danger :on-press (fn [] (rf/dispatch