From 0769c353db533f265faa105bda5011164d6476ad Mon Sep 17 00:00:00 2001 From: Andrea Maria Piana Date: Mon, 30 Sep 2019 13:33:45 +0200 Subject: [PATCH] Add username to quoted message --- src/status_im/subs.cljs | 10 ++++++++-- src/status_im/ui/screens/chat/input/input.cljs | 10 +++++----- .../ui/screens/chat/message/message.cljs | 11 +++++------ src/status_im/ui/screens/chat/utils.cljs | 15 +++++---------- .../ui/screens/desktop/main/chat/views.cljs | 18 +++++++++--------- 5 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/status_im/subs.cljs b/src/status_im/subs.cljs index 92d1d6e454ca..cde20315e368 100644 --- a/src/status_im/subs.cljs +++ b/src/status_im/subs.cljs @@ -45,6 +45,7 @@ [status-im.wallet.core :as wallet] [status-im.wallet.db :as wallet.db] [status-im.signing.gas :as signing.gas] + [status-im.utils.gfycat.core :as gfycat] status-im.ui.screens.hardwallet.connect.subs status-im.ui.screens.hardwallet.settings.subs status-im.ui.screens.hardwallet.pin.subs @@ -1479,8 +1480,13 @@ (fn [[contacts current-multiaccount] [_ identity]] (let [me? (= (:public-key current-multiaccount) identity)] (if me? - (:name current-multiaccount) - (:name (contacts identity)))))) + {:username (:name current-multiaccount) + :alias (gfycat/generate-gfy identity)} + (let [contact (or (contacts identity) + (contact.db/public-key->new-contact identity))] + {:username (:name contact) + :alias (or (:alias contact) + (gfycat/generate-gfy identity))}))))) (re-frame/reg-sub :contacts/all-contacts-not-in-current-chat diff --git a/src/status_im/ui/screens/chat/input/input.cljs b/src/status_im/ui/screens/chat/input/input.cljs index 61a9ce0b7930..2df3d2be5656 100644 --- a/src/status_im/ui/screens/chat/input/input.cljs +++ b/src/status_im/ui/screens/chat/input/input.cljs @@ -154,20 +154,20 @@ [vector-icons/icon :main-icons/commands {:container-style style/input-commands-icon :color colors/gray}]]]))) -(defview reply-message [from message-text] - (letsubs [username [:contacts/contact-name-by-identity from] +(defview reply-message [from alias message-text] + (letsubs [{:keys [username]} [:contacts/contact-name-by-identity from] current-public-key [:multiaccount/public-key]] [react/scroll-view {:style style/reply-message-content} - (chat-utils/format-reply-author from username current-public-key style/reply-message-author) + (chat-utils/format-reply-author from alias username current-public-key style/reply-message-author) [react/text {:style (message-style/style-message-text false)} message-text]])) (defview reply-message-view [] - (letsubs [{:keys [content from] :as message} [:chats/reply-message]] + (letsubs [{:keys [content from alias] :as message} [:chats/reply-message]] (when message [react/view {:style style/reply-message-container} [react/view {:style style/reply-message} [photos/member-photo from] - [reply-message from (:text content)]] + [reply-message from alias (:text content)]] [react/touchable-highlight {:style style/cancel-reply-highlight :on-press #(re-frame/dispatch [:chat.ui/cancel-message-reply]) diff --git a/src/status_im/ui/screens/chat/message/message.cljs b/src/status_im/ui/screens/chat/message/message.cljs index 11697f426ffc..b29fafa5e769 100644 --- a/src/status_im/ui/screens/chat/message/message.cljs +++ b/src/status_im/ui/screens/chat/message/message.cljs @@ -45,11 +45,11 @@ content content-type]]) (defview quoted-message [{:keys [from text]} outgoing current-public-key] - (letsubs [username [:contacts/contact-name-by-identity from]] + (letsubs [{:keys [username alias]} [:contacts/contact-name-by-identity from]] [react/view {:style (style/quoted-message-container outgoing)} [react/view {:style style/quoted-message-author-container} [vector-icons/tiny-icon :tiny-icons/tiny-reply {:color (if outgoing colors/white-transparent colors/gray)}] - (chat.utils/format-reply-author from username current-public-key (partial style/quoted-message-author outgoing))] + (chat.utils/format-reply-author from alias username current-public-key (partial style/quoted-message-author outgoing))] [react/text {:style (style/quoted-message-text outgoing) :number-of-lines 5} @@ -92,11 +92,11 @@ {:justify-timestamp? true}]) (defn emoji-message - [{:keys [content current-public-key] :as message}] + [{:keys [content current-public-key alias] :as message}] [message-view message [react/view {:style (style/style-message-text false)} (when (:response-to content) - [quoted-message (:response-to content) false current-public-key]) + [quoted-message (:response-to content) alias false current-public-key]) [react/text {:style (style/emoji-message message)} (:text content)]]]) @@ -197,8 +197,7 @@ [command-status content])))) (defview message-author-name [alias name] - (letsubs [username [:contacts/contact-name-by-identity alias]] - (chat.utils/format-author alias style/message-author-name name))) + (chat.utils/format-author alias style/message-author-name name)) (defn message-body [{:keys [last-in-group? diff --git a/src/status_im/ui/screens/chat/utils.cljs b/src/status_im/ui/screens/chat/utils.cljs index 04b8805bb3d5..dd01f6a1a382 100644 --- a/src/status_im/ui/screens/chat/utils.cljs +++ b/src/status_im/ui/screens/chat/utils.cljs @@ -11,23 +11,18 @@ [status-im.ui.components.colors :as colors] [status-im.utils.http :as http])) -(defn format-author [from style name] - (cond - (ens/is-valid-eth-name? name) +(defn format-author [alias style name] + (if (ens/is-valid-eth-name? name) [react/text {:style {:color colors/blue :font-size 13 :font-weight "500"}} (str "@" (or (stateofus/username name) name))] - name - [react/text {:style {:color colors/blue :font-size 13 :font-weight "500"}} - name] - :else [react/text {:style {:color colors/gray :font-size 12 :font-weight "400"}} - from])) + alias])) -(defn format-reply-author [from username current-public-key style] +(defn format-reply-author [from alias username current-public-key style] (or (and (= from current-public-key) [react/text {:style (style true)} (i18n/label :t/You)]) - (format-author from style nil))) + (format-author alias style username))) (def ^:private styling->prop {:bold {:style {:font-weight "700"}} diff --git a/src/status_im/ui/screens/desktop/main/chat/views.cljs b/src/status_im/ui/screens/desktop/main/chat/views.cljs index 9b8867597500..74ab123201a5 100644 --- a/src/status_im/ui/screens/desktop/main/chat/views.cljs +++ b/src/status_im/ui/screens/desktop/main/chat/views.cljs @@ -64,7 +64,7 @@ :height 24}}]]])) (views/defview message-author-name [{:keys [from]}] - (views/letsubs [incoming-name [:contacts/contact-name-by-identity from]] + (views/letsubs [{:keys [username]} [:contacts/contact-name-by-identity from]] [react/view {:flex-direction :row} (when incoming-name [react/text {:style styles/author} incoming-name]) @@ -85,14 +85,14 @@ :style styles/photo-style}]]]]])) (views/defview quoted-message [{:keys [from text]} outgoing current-public-key] - (views/letsubs [username [:contacts/contact-name-by-identity from]] + (views/letsubs [{:keys [username alias]} [:contacts/contact-name-by-identity from]] [react/view {:style styles/quoted-message-container} [react/view {:style styles/quoted-message-author-container} [vector-icons/tiny-icon :tiny-icons/tiny-reply {:style (styles/reply-icon outgoing) :width 16 :height 16 :container-style (when outgoing {:opacity 0.4})}] - (chat-utils/format-reply-author from username current-public-key (partial message.style/quoted-message-author outgoing))] + (chat-utils/format-reply-author from alias username current-public-key (partial message.style/quoted-message-author outgoing))] [react/text {:style (message.style/quoted-message-text outgoing) :number-of-lines 5} (core-utils/truncate-str text constants/chars-collapse-threshold)]])) @@ -101,7 +101,7 @@ (not (#{:not-sent :sending} outgoing-status))) (views/defview message-without-timestamp - [text {:keys [chat-id message-id content group-chat expanded? current-public-key outgoing-status] :as message} style] + [text {:keys [chat-id message-id content group-chat alias expanded? current-public-key outgoing-status] :as message} style] [react/view {:flex 1 :margin-vertical 5} [react/touchable-highlight {:on-press (fn [arg] (when (= "right" (.-button (.-nativeEvent arg))) @@ -270,11 +270,11 @@ [react/view {:style (styles/send-icon inactive?)} [vector-icons/icon :main-icons/arrow-left {:style (styles/send-icon-arrow inactive?)}]]]))) -(views/defview reply-message [from message-text] - (views/letsubs [username [:contacts/contact-name-by-identity from] +(views/defview reply-message [from alias message-text] + (views/letsubs [{:keys [username]} [:contacts/contact-name-by-identity from] current-public-key [:multiaccount/public-key]] [react/view {:style styles/reply-content-container} - (chat-utils/format-reply-author from username current-public-key styles/reply-content-author) + (chat-utils/format-reply-author from alias username current-public-key styles/reply-content-author) [react/text {:style styles/reply-content-message} message-text]])) (views/defview reply-member-photo [from] @@ -285,12 +285,12 @@ :style styles/reply-photo-style}])) (views/defview reply-message-view [] - (views/letsubs [{:keys [content from] :as message} [:chats/reply-message]] + (views/letsubs [{:keys [alias content from] :as message} [:chats/reply-message]] (when message [react/view {:style styles/reply-wrapper} [react/view {:style styles/reply-container} [reply-member-photo from] - [reply-message from (:text content)]] + [reply-message from alias (:text content)]] [react/touchable-highlight {:style styles/reply-close-highlight :on-press #(re-frame/dispatch [:chat.ui/cancel-message-reply])