Skip to content

Commit f8d4f56

Browse files
authored
collectible metrics (#21280)
1 parent 0957fb6 commit f8d4f56

File tree

9 files changed

+61
-25
lines changed

9 files changed

+61
-25
lines changed

src/status_im/contexts/centralized_metrics/events.cljs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
(defn centralized-metrics-interceptor
1616
[context]
17-
(when-let [event (tracking/tracked-event (interceptor/get-coeffect context :event))]
17+
(when-let [event (tracking/metrics-event (interceptor/get-coeffect context :event))]
1818
(log/debug "tracking event" event)
1919
(when (push-event? (interceptor/get-coeffect context :db))
2020
(native-module/add-centralized-metric event)))

src/status_im/contexts/centralized_metrics/events_test.cljs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
(deftest centralized-metrics-interceptor-test
1717
(testing "processes context correctly"
18-
(with-redefs [tracking/tracked-event (fn [_] {:metric "mocked-event"})
18+
(with-redefs [tracking/metrics-event (fn [_] {:metric "mocked-event"})
1919
events/push-event? (fn [_] true)]
2020
(let [context {:coeffects {:event [:some-event]
2121
:db {:centralized-metrics/enabled? true}}}]

src/status_im/contexts/centralized_metrics/tracking.cljs

+21-6
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,38 @@
4343
:screen/onboarding.syncing-progress
4444
:screen/onboarding.syncing-progress-intro
4545
:screen/onboarding.syncing-results
46-
:screen/onboarding.welcome})
46+
:screen/onboarding.welcome
47+
48+
;; Collectibles
49+
:screen/wallet.collectible})
4750

4851
(defn track-view-id-event
4952
[view-id]
5053
(when (contains? view-ids-to-track view-id)
5154
(navigation-event (name view-id))))
5255

53-
(defn tracked-event
54-
[[event-name second-parameter]]
55-
(case event-name
56+
(defn navigated-to-collectibles-tab-event
57+
[location]
58+
(key-value-event "navigated-to-collectibles-tab" {:location location}))
59+
60+
(defn metrics-event
61+
[[rf-event-name rf-event-parameter]]
62+
(case rf-event-name
5663
:profile/get-profiles-overview-success
5764
(user-journey-event app-started-event)
5865

5966
:centralized-metrics/toggle-centralized-metrics
60-
(key-value-event "events.metrics-enabled" {:enabled second-parameter})
67+
(key-value-event "events.metrics-enabled" {:enabled rf-event-parameter})
6168

6269
:set-view-id
63-
(track-view-id-event second-parameter)
70+
(track-view-id-event rf-event-parameter)
71+
72+
:wallet/select-account-tab
73+
(when (= rf-event-parameter :collectibles)
74+
(navigated-to-collectibles-tab-event :account))
75+
76+
:wallet/select-home-tab
77+
(when (= rf-event-parameter :collectibles)
78+
(navigated-to-collectibles-tab-event :home))
6479

6580
nil))

src/status_im/contexts/centralized_metrics/tracking_test.cljs

+4-4
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,17 @@
6363
:platform platform-os
6464
:appVersion app-version
6565
:eventValue {:action tracking/app-started-event}}}
66-
(tracking/tracked-event [:profile/get-profiles-overview-success])))
66+
(tracking/metrics-event [:profile/get-profiles-overview-success])))
6767
(is (= {:metric
6868
{:eventName "events.metrics-enabled"
6969
:platform platform-os
7070
:appVersion app-version
7171
:eventValue {:enabled true}}}
72-
(tracking/tracked-event [:centralized-metrics/toggle-centralized-metrics true])))
72+
(tracking/metrics-event [:centralized-metrics/toggle-centralized-metrics true])))
7373
(is (= {:metric
7474
{:eventName "navigation"
7575
:platform platform-os
7676
:appVersion app-version
7777
:eventValue {:viewId "wallet-stack"}}}
78-
(tracking/tracked-event [:set-view-id :wallet-stack])))
79-
(is (nil? (tracking/tracked-event [:unknown-event])))))
78+
(tracking/metrics-event [:set-view-id :wallet-stack])))
79+
(is (nil? (tracking/metrics-event [:unknown-event])))))

src/status_im/contexts/wallet/collectible/events.cljs

+10-2
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,18 @@
4343

4444
(defn flush-collectibles
4545
[{:keys [db]}]
46-
(let [collectibles-per-account (get-in db [:wallet :ui :collectibles :fetched])]
46+
(let [collectibles-per-account (get-in db [:wallet :ui :collectibles :fetched])
47+
updated-accounts (move-collectibles-to-accounts (get-in db [:wallet :accounts])
48+
collectibles-per-account)
49+
has-collectibles? (some (fn [account]
50+
(pos? (count (:collectibles account))))
51+
(vals updated-accounts))]
4752
{:db (-> db
4853
(update-in [:wallet :ui :collectibles] dissoc :pending-requests :fetched)
49-
(update-in [:wallet :accounts] move-collectibles-to-accounts collectibles-per-account))}))
54+
(assoc-in [:wallet :accounts] updated-accounts))
55+
:fx [[:dispatch
56+
[:centralized-metrics/track :metric/wallet-collectibles-fetched
57+
{:has-collectibles? has-collectibles?}]]]}))
5058

5159
(rf/reg-event-fx :wallet/flush-collectibles-fetched flush-collectibles)
5260

src/status_im/contexts/wallet/db.cljs

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@
1010
;; Note: we set it to nil by default to differentiate when the user logs
1111
;; in and the device is offline, versus re-fetching when offline and
1212
;; tokens already exist in the app-db.
13-
:tokens-loading nil}})
13+
:tokens-loading nil
14+
:active-tab :assets}})

src/status_im/contexts/wallet/events.cljs

+4
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@
5959
(fn [{:keys [db]} [tab]]
6060
{:db (assoc-in db [:wallet :ui :account-page :active-tab] tab)}))
6161

62+
(rf/reg-event-fx :wallet/select-home-tab
63+
(fn [{:keys [db]} [tab]]
64+
{:db (assoc-in db [:wallet :ui :active-tab] tab)}))
65+
6266
(rf/reg-event-fx :wallet/clear-account-tab
6367
(fn [{:keys [db]}]
6468
{:db (assoc-in db [:wallet :ui :account-page :active-tab] nil)}))

src/status_im/contexts/wallet/home/view.cljs

+12-10
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
(when (ff/enabled? ::ff/wallet.home-activity)
4242
{:id :activity :label (i18n/label :t/activity) :accessibility-label :activity-tab})])
4343

44+
(defn- change-tab [id] (rf/dispatch [:wallet/select-home-tab id]))
45+
4446
(defn- render-cards
4547
[cards ref]
4648
[rn/flat-list
@@ -64,15 +66,15 @@
6466

6567
(defn view
6668
[]
67-
(let [[selected-tab set-selected-tab] (rn/use-state (:id (first tabs-data)))
68-
account-list-ref (rn/use-ref-atom nil)
69-
tokens-loading? (rf/sub [:wallet/home-tokens-loading?])
70-
networks (rf/sub [:wallet/selected-network-details])
71-
account-cards-data (rf/sub [:wallet/account-cards-data])
72-
cards (conj account-cards-data (new-account-card-data))
73-
[init-loaded? set-init-loaded] (rn/use-state false)
74-
{:keys [formatted-balance]} (rf/sub [:wallet/aggregated-token-values-and-balance])
75-
theme (quo.theme/use-theme)]
69+
(let [selected-tab (rf/sub [:wallet/home-tab])
70+
account-list-ref (rn/use-ref-atom nil)
71+
tokens-loading? (rf/sub [:wallet/home-tokens-loading?])
72+
networks (rf/sub [:wallet/selected-network-details])
73+
account-cards-data (rf/sub [:wallet/account-cards-data])
74+
cards (conj account-cards-data (new-account-card-data))
75+
[init-loaded? set-init-loaded] (rn/use-state false)
76+
{:keys [formatted-balance]} (rf/sub [:wallet/aggregated-token-values-and-balance])
77+
theme (quo.theme/use-theme)]
7678
(rn/use-effect (fn []
7779
(when (and @account-list-ref (pos? (count cards)))
7880
(.scrollToOffset ^js @account-list-ref
@@ -104,7 +106,7 @@
104106
(when (ff/enabled? ::ff/wallet.graph)
105107
[quo/wallet-graph {:time-frame :empty}])
106108
[render-cards cards account-list-ref]
107-
[render-tabs tabs-data set-selected-tab selected-tab]]
109+
[render-tabs tabs-data change-tab selected-tab]]
108110
:content-container-style style/list-container
109111
:sticky-header-indices [0]
110112
:data []

src/status_im/subs/wallet/wallet.cljs

+6
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,12 @@
591591
(fn [ui]
592592
(get-in ui [:account-page :active-tab])))
593593

594+
(rf/reg-sub
595+
:wallet/home-tab
596+
:<- [:wallet/ui]
597+
(fn [ui]
598+
(:active-tab ui)))
599+
594600
(rf/reg-sub
595601
:wallet/aggregated-tokens
596602
:<- [:wallet/accounts-without-watched-accounts]

0 commit comments

Comments
 (0)