Skip to content

Commit 15bd27d

Browse files
committed
Metrics for collectibles tab navigation, collectibles acmount
1 parent 1ee16da commit 15bd27d

File tree

7 files changed

+60
-18
lines changed

7 files changed

+60
-18
lines changed

src/status_im/contexts/centralized_metrics/events.cljs

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
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/tracked-event (interceptor/get-coeffect context :event)
18+
(interceptor/get-coeffect context :db))]
1819
(log/debug "tracking event" event)
1920
(when (push-event? (interceptor/get-coeffect context :db))
2021
(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/tracked-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

+29-2
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,31 @@
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

56+
(defn collectilbes-fetched-event
57+
[db]
58+
(let [accounts (get-in db [:wallet :accounts])
59+
amount-on-all-accounts (reduce (fn [collectibles-amount account]
60+
(+ collectibles-amount (:current-collectible-idx account)))
61+
0
62+
(vals accounts))]
63+
(key-value-event "collectibles-fetched" :total-amount amount-on-all-accounts)))
64+
65+
(defn navigated-to-collectibles-tab-event
66+
[location]
67+
(key-value-event "navigated-to-collectibles-tab" :location location))
68+
5369
(defn tracked-event
54-
[[event-name second-parameter]]
70+
[[event-name second-parameter] db]
5571
(case event-name
5672
:profile/get-profiles-overview-success
5773
(user-journey-event app-started-event)
@@ -62,4 +78,15 @@
6278
:set-view-id
6379
(track-view-id-event second-parameter)
6480

81+
:wallet/select-account-tab
82+
(when (= second-parameter :collectibles)
83+
(navigated-to-collectibles-tab-event :account))
84+
85+
:wallet/select-home-tab
86+
(when (= second-parameter :collectibles)
87+
(navigated-to-collectibles-tab-event :home))
88+
89+
:wallet/flush-collectibles-fetched
90+
(collectilbes-fetched-event db)
91+
6592
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/tracked-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/tracked-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/tracked-event [:set-view-id :wallet-stack] {})))
79+
(is (nil? (tracking/tracked-event [:unknown-event] {})))))

src/status_im/contexts/wallet/events.cljs

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

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

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

+14-10
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,16 @@
3535
:on-press #(rf/dispatch [:show-bottom-sheet {:content new-account}])
3636
:type :add-account})
3737

38+
(def first-tab-id :assets)
39+
3840
(def tabs-data
3941
[{:id :assets :label (i18n/label :t/assets) :accessibility-label :assets-tab}
4042
{:id :collectibles :label (i18n/label :t/collectibles) :accessibility-label :collectibles-tab}
4143
(when (ff/enabled? ::ff/wallet.home-activity)
4244
{:id :activity :label (i18n/label :t/activity) :accessibility-label :activity-tab})])
4345

46+
(defn- change-tab [id] (rf/dispatch [:wallet/select-home-tab id]))
47+
4448
(defn- render-cards
4549
[cards ref]
4650
[rn/flat-list
@@ -64,15 +68,15 @@
6468

6569
(defn view
6670
[]
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)]
71+
(let [selected-tab (or (rf/sub [:wallet/home-tab]) first-tab-id)
72+
account-list-ref (rn/use-ref-atom nil)
73+
tokens-loading? (rf/sub [:wallet/home-tokens-loading?])
74+
networks (rf/sub [:wallet/selected-network-details])
75+
account-cards-data (rf/sub [:wallet/account-cards-data])
76+
cards (conj account-cards-data (new-account-card-data))
77+
[init-loaded? set-init-loaded] (rn/use-state false)
78+
{:keys [formatted-balance]} (rf/sub [:wallet/aggregated-token-values-and-balance])
79+
theme (quo.theme/use-theme)]
7680
(rn/use-effect (fn []
7781
(when (and @account-list-ref (pos? (count cards)))
7882
(.scrollToOffset ^js @account-list-ref
@@ -104,7 +108,7 @@
104108
(when (ff/enabled? ::ff/wallet.graph)
105109
[quo/wallet-graph {:time-frame :empty}])
106110
[render-cards cards account-list-ref]
107-
[render-tabs tabs-data set-selected-tab selected-tab]]
111+
[render-tabs tabs-data change-tab selected-tab]]
108112
:content-container-style style/list-container
109113
:sticky-header-indices [0]
110114
:data []

src/status_im/subs/wallet/wallet.cljs

+6
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,12 @@
527527
(fn [ui]
528528
(get-in ui [:account-page :active-tab])))
529529

530+
(rf/reg-sub
531+
:wallet/home-tab
532+
:<- [:wallet/ui]
533+
(fn [ui]
534+
(:active-tab ui)))
535+
530536
(rf/reg-sub
531537
:wallet/aggregated-tokens
532538
:<- [:wallet/accounts-without-watched-accounts]

0 commit comments

Comments
 (0)