Skip to content

Commit

Permalink
Metrics for collectibles tab navigation, collectibles acmount
Browse files Browse the repository at this point in the history
  • Loading branch information
vkjr committed Sep 23, 2024
1 parent 4bf8aaf commit 774a80f
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 18 deletions.
3 changes: 2 additions & 1 deletion src/status_im/contexts/centralized_metrics/events.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@

(defn centralized-metrics-interceptor
[context]
(when-let [event (tracking/tracked-event (interceptor/get-coeffect context :event))]
(when-let [event (tracking/tracked-event (interceptor/get-coeffect context :event)
(interceptor/get-coeffect context :db))]
(log/debug "tracking event" event)
(when (push-event? (interceptor/get-coeffect context :db))
(native-module/add-centralized-metric event)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

(deftest centralized-metrics-interceptor-test
(testing "processes context correctly"
(with-redefs [tracking/tracked-event (fn [_] {:metric "mocked-event"})
(with-redefs [tracking/tracked-event (fn [_ _] {:metric "mocked-event"})
events/push-event? (fn [_] true)]
(let [context {:coeffects {:event [:some-event]
:db {:centralized-metrics/enabled? true}}}]
Expand Down
31 changes: 29 additions & 2 deletions src/status_im/contexts/centralized_metrics/tracking.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,31 @@
:screen/onboarding.syncing-progress
:screen/onboarding.syncing-progress-intro
:screen/onboarding.syncing-results
:screen/onboarding.welcome})
:screen/onboarding.welcome

;; Collectibles
:screen/wallet.collectible})

(defn track-view-id-event
[view-id]
(when (contains? view-ids-to-track view-id)
(navigation-event (name view-id))))

(defn collectilbes-fetched-event
[db]
(let [accounts (get-in db [:wallet :accounts])
amount-on-all-accounts (reduce (fn [collectibles-amount account]
(+ collectibles-amount (:current-collectible-idx account)))
0
(vals accounts))]
(key-value-event "collectibles-fetched" :total-amount amount-on-all-accounts)))

(defn navigated-to-collectibles-tab-event
[location]
(key-value-event "navigated-to-collectibles-tab" :location location))

(defn tracked-event
[[event-name second-parameter]]
[[event-name second-parameter] db]
(case event-name
:profile/get-profiles-overview-success
(user-journey-event app-started-event)
Expand All @@ -62,4 +78,15 @@
:set-view-id
(track-view-id-event second-parameter)

:wallet/select-account-tab
(when (= second-parameter :collectibles)
(navigated-to-collectibles-tab-event :account))

:wallet/select-home-tab
(when (= second-parameter :collectibles)
(navigated-to-collectibles-tab-event :home))

:wallet/flush-collectibles-fetched
(collectilbes-fetched-event db)

nil))
8 changes: 4 additions & 4 deletions src/status_im/contexts/centralized_metrics/tracking_test.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,17 @@
:platform platform-os
:appVersion app-version
:eventValue {:action tracking/app-started-event}}}
(tracking/tracked-event [:profile/get-profiles-overview-success])))
(tracking/tracked-event [:profile/get-profiles-overview-success] {})))
(is (= {:metric
{:eventName "events.metrics-enabled"
:platform platform-os
:appVersion app-version
:eventValue {:enabled true}}}
(tracking/tracked-event [:centralized-metrics/toggle-centralized-metrics true])))
(tracking/tracked-event [:centralized-metrics/toggle-centralized-metrics true] {})))
(is (= {:metric
{:eventName "navigation"
:platform platform-os
:appVersion app-version
:eventValue {:viewId "wallet-stack"}}}
(tracking/tracked-event [:set-view-id :wallet-stack])))
(is (nil? (tracking/tracked-event [:unknown-event])))))
(tracking/tracked-event [:set-view-id :wallet-stack] {})))
(is (nil? (tracking/tracked-event [:unknown-event] {})))))
4 changes: 4 additions & 0 deletions src/status_im/contexts/wallet/events.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@
(fn [{:keys [db]} [tab]]
{:db (assoc-in db [:wallet :ui :account-page :active-tab] tab)}))

(rf/reg-event-fx :wallet/select-home-tab
(fn [{:keys [db]} [tab]]
{:db (assoc-in db [:wallet :ui :active-tab] tab)}))

(rf/reg-event-fx :wallet/clear-account-tab
(fn [{:keys [db]}]
{:db (assoc-in db [:wallet :ui :account-page :active-tab] nil)}))
Expand Down
24 changes: 14 additions & 10 deletions src/status_im/contexts/wallet/home/view.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,16 @@
:on-press #(rf/dispatch [:show-bottom-sheet {:content new-account}])
:type :add-account})

(def first-tab-id :assets)

(def tabs-data
[{:id :assets :label (i18n/label :t/assets) :accessibility-label :assets-tab}
{:id :collectibles :label (i18n/label :t/collectibles) :accessibility-label :collectibles-tab}
(when (ff/enabled? ::ff/wallet.home-activity)
{:id :activity :label (i18n/label :t/activity) :accessibility-label :activity-tab})])

(defn- change-tab [id] (rf/dispatch [:wallet/select-home-tab id]))

(defn- render-cards
[cards ref]
[rn/flat-list
Expand All @@ -64,15 +68,15 @@

(defn view
[]
(let [[selected-tab set-selected-tab] (rn/use-state (:id (first tabs-data)))
account-list-ref (rn/use-ref-atom nil)
tokens-loading? (rf/sub [:wallet/home-tokens-loading?])
networks (rf/sub [:wallet/selected-network-details])
account-cards-data (rf/sub [:wallet/account-cards-data])
cards (conj account-cards-data (new-account-card-data))
[init-loaded? set-init-loaded] (rn/use-state false)
{:keys [formatted-balance]} (rf/sub [:wallet/aggregated-token-values-and-balance])
theme (quo.theme/use-theme)]
(let [selected-tab (or (rf/sub [:wallet/home-tab]) first-tab-id)
account-list-ref (rn/use-ref-atom nil)
tokens-loading? (rf/sub [:wallet/home-tokens-loading?])
networks (rf/sub [:wallet/selected-network-details])
account-cards-data (rf/sub [:wallet/account-cards-data])
cards (conj account-cards-data (new-account-card-data))
[init-loaded? set-init-loaded] (rn/use-state false)
{:keys [formatted-balance]} (rf/sub [:wallet/aggregated-token-values-and-balance])
theme (quo.theme/use-theme)]
(rn/use-effect (fn []
(when (and @account-list-ref (pos? (count cards)))
(.scrollToOffset ^js @account-list-ref
Expand Down Expand Up @@ -104,7 +108,7 @@
(when (ff/enabled? ::ff/wallet.graph)
[quo/wallet-graph {:time-frame :empty}])
[render-cards cards account-list-ref]
[render-tabs tabs-data set-selected-tab selected-tab]]
[render-tabs tabs-data change-tab selected-tab]]
:content-container-style style/list-container
:sticky-header-indices [0]
:data []
Expand Down
6 changes: 6 additions & 0 deletions src/status_im/subs/wallet/wallet.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,12 @@
(fn [ui]
(get-in ui [:account-page :active-tab])))

(rf/reg-sub
:wallet/home-tab
:<- [:wallet/ui]
(fn [ui]
(:active-tab ui)))

(rf/reg-sub
:wallet/aggregated-tokens
:<- [:wallet/accounts-without-watched-accounts]
Expand Down

0 comments on commit 774a80f

Please sign in to comment.