From 1b39c3606ab6ddb7c00fae5b438bce253f88e117 Mon Sep 17 00:00:00 2001 From: yqrashawn Date: Mon, 29 Jul 2024 09:02:12 +0800 Subject: [PATCH] feat: dapp connected notification https://github.com/status-im/status-go/compare/4a43b2b2...177688f8 Signed-off-by: yqrashawn --- .../status_im/data_store/activities.cljs | 18 ++++++---- .../notification/dapp_connection/view.cljs | 35 +++++++++++++++++++ .../activity_center/notification_types.cljs | 5 ++- .../contexts/shell/activity_center/view.cljs | 4 +++ .../wallet/wallet_connect/events.cljs | 3 +- src/status_im/subs/wallet/activities.cljs | 1 - status-go-version.json | 6 ++-- translations/en.json | 1 + 8 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 src/status_im/contexts/shell/activity_center/notification/dapp_connection/view.cljs diff --git a/src/legacy/status_im/data_store/activities.cljs b/src/legacy/status_im/data_store/activities.cljs index 8ca8865e3eef..8c3d836e113e 100644 --- a/src/legacy/status_im/data_store/activities.cljs +++ b/src/legacy/status_im/data_store/activities.cljs @@ -57,13 +57,17 @@ [item] (-> item rpc->type - (set/rename-keys {:lastMessage :last-message - :replyMessage :reply-message - :chatId :chat-id - :contactVerificationStatus :contact-verification-status - :communityId :community-id - :membershipStatus :membership-status - :albumMessages :album-messages}) + (set/rename-keys {:lastMessage :last-message + :replyMessage :reply-message + :chatId :chat-id + :contactVerificationStatus :contact-verification-status + :communityId :community-id + :membershipStatus :membership-status + :albumMessages :album-messages + :walletProviderSessionTopic :wallet-provider-session-topic + :dappURL :dapp-url + :dappName :dapp-name + :dappIconURL :dapp-icon-url}) (update :last-message #(when % (messages/<-rpc %))) (update :message #(when % (messages/<-rpc %))) (update :reply-message #(when % (messages/<-rpc %))) diff --git a/src/status_im/contexts/shell/activity_center/notification/dapp_connection/view.cljs b/src/status_im/contexts/shell/activity_center/notification/dapp_connection/view.cljs new file mode 100644 index 000000000000..d85efd7ddf6f --- /dev/null +++ b/src/status_im/contexts/shell/activity_center/notification/dapp_connection/view.cljs @@ -0,0 +1,35 @@ +(ns status-im.contexts.shell.activity-center.notification.dapp-connection.view + (:require + [quo.core :as quo] + [quo.foundations.resources :as quo.resources] + [status-im.contexts.shell.activity-center.notification.common.view :as common] + [utils.datetime :as datetime] + [utils.i18n :as i18n] + utils.url)) + +(defn view + [{:keys [customization-color notification extra-fn]}] + (let [{:keys [timestamp read dapp-url dapp-icon-url]} notification] + [common/swipeable + {:left-button common/swipe-button-read-or-unread + :left-on-press common/swipe-on-press-toggle-read + :right-button common/swipe-button-delete + :right-on-press common/swipe-on-press-delete + :extra-fn extra-fn} + [quo/activity-log + {:title (i18n/label :t/connected-to-dapp) + :customization-color customization-color + :icon :i/dapps + :timestamp (datetime/timestamp->relative timestamp) + :unread? (not read) + :context [[quo/context-tag + {:type :dapp + :size 24 + :dapp-logo dapp-icon-url + :dapp-name (utils.url/url-host dapp-url)}] + (i18n/label :t/via) + [quo/context-tag + {:type :dapp + :size 24 + :dapp-logo (quo.resources/get-dapp :wallet-connect) + :dapp-name "WalletConnect"}]]}]])) diff --git a/src/status_im/contexts/shell/activity_center/notification_types.cljs b/src/status_im/contexts/shell/activity_center/notification_types.cljs index c24ef2ca5cce..0926e4bdcea7 100644 --- a/src/status_im/contexts/shell/activity_center/notification_types.cljs +++ b/src/status_im/contexts/shell/activity_center/notification_types.cljs @@ -10,6 +10,8 @@ (def ^:const admin 8) (def ^:const community-kicked 9) (def ^:const contact-verification 10) +(def ^:const dapp-connected 23) +(def ^:const dapp-disconnected 24) (def ^:const all-supported #{one-to-one-chat @@ -20,7 +22,8 @@ community-request admin community-kicked - contact-verification}) + contact-verification + dapp-connected}) ;; TODO: Replace with correct enum values once status-go implements them. (def ^:const tx 66612) diff --git a/src/status_im/contexts/shell/activity_center/view.cljs b/src/status_im/contexts/shell/activity_center/view.cljs index 25f9ca6e8e98..94f626e5b164 100644 --- a/src/status_im/contexts/shell/activity_center/view.cljs +++ b/src/status_im/contexts/shell/activity_center/view.cljs @@ -16,6 +16,7 @@ contact-requests] [status-im.contexts.shell.activity-center.notification.contact-verification.view :as contact-verification] + [status-im.contexts.shell.activity-center.notification.dapp-connection.view :as dapp-connection] [status-im.contexts.shell.activity-center.notification.membership.view :as membership] [status-im.contexts.shell.activity-center.notification.mentions.view :as mentions] [status-im.contexts.shell.activity-center.notification.reply.view :as reply] @@ -51,6 +52,9 @@ (= type types/admin) [admin/view props] + (= type types/dapp-connected) + [dapp-connection/view props] + (some types/membership [type]) (condp = type types/private-group-chat [membership/view props] diff --git a/src/status_im/contexts/wallet/wallet_connect/events.cljs b/src/status_im/contexts/wallet/wallet_connect/events.cljs index 7eba50495a96..366b9d4234bd 100644 --- a/src/status_im/contexts/wallet/wallet_connect/events.cljs +++ b/src/status_im/contexts/wallet/wallet_connect/events.cljs @@ -324,7 +324,8 @@ :params [(js/JSON.stringify session-info)] :on-success (fn [] (log/info "Wallet Connect session persisted") - (rf/dispatch [:wallet-connect/fetch-persisted-sessions])) + (rf/dispatch [:wallet-connect/fetch-persisted-sessions]) + (rf/dispatch [:activity-center.notifications/fetch-unread-count])) :on-error #(log/info "Wallet Connect session persistence failed" %)}]]]})) (rf/reg-event-fx diff --git a/src/status_im/subs/wallet/activities.cljs b/src/status_im/subs/wallet/activities.cljs index 1edfc7a1db2c..81a9e40b75a8 100644 --- a/src/status_im/subs/wallet/activities.cljs +++ b/src/status_im/subs/wallet/activities.cljs @@ -3,7 +3,6 @@ [clojure.string :as string] [native-module.core :as native-module] [quo.foundations.resources :as quo.resources] - [quo.foundations.resources] [re-frame.core :as rf] [status-im.contexts.wallet.common.activity-tab.constants :as constants] [utils.datetime :as datetime] diff --git a/status-go-version.json b/status-go-version.json index d7107a1ac0c6..d0f8b25eee1e 100644 --- a/status-go-version.json +++ b/status-go-version.json @@ -3,7 +3,7 @@ "_comment": "Instead use: scripts/update-status-go.sh ", "owner": "status-im", "repo": "status-go", - "version": "v0.182.40", - "commit-sha1": "9ef122b89551f2210946e0d3094ee0225aa39b75", - "src-sha256": "0pd2kjc3g7cfvg7j0w7lsaczk5za2c2259sbidjjhr0v54cfys0l" + "version": "feat/wallet-connect-session-notification", + "commit-sha1": "177688f8c483ccc492834bcdae36ae76a3074a1b", + "src-sha256": "1y8dv545lzpy9dfvjj973hxsrzzhh0wab73d9fad16r5bs0wivc5" } diff --git a/translations/en.json b/translations/en.json index 63ba3b1c626f..5b48e74ac0a0 100644 --- a/translations/en.json +++ b/translations/en.json @@ -466,6 +466,7 @@ "connected": "Connected", "connected-dapps": "Connected dApps", "connected-to": "Connected to", + "connected-to-dapp": "Connected to dApp", "connecting": "Connecting...", "connecting-requires-login": "Connecting to another network requires login", "connection-request": "Connection Request",