mirror of
https://github.com/status-im/status-react.git
synced 2025-02-26 09:35:36 +00:00
chore: enrich onboarding navigation events for analytics
This commit is contained in:
parent
2357c2088f
commit
ed190b592f
@ -17,7 +17,10 @@
|
||||
(when-let [event (tracking/tracked-event (interceptor/get-coeffect context :event))]
|
||||
(log/debug "tracking event" event)
|
||||
(when (push-event? (interceptor/get-coeffect context :db))
|
||||
(native-module/add-centralized-metric event)))
|
||||
(cond
|
||||
(and (coll? event)
|
||||
(vector? event)) (doall (map native-module/add-centralized-metric event))
|
||||
:else (native-module/add-centralized-metric event))))
|
||||
context)
|
||||
|
||||
(def interceptor
|
||||
|
@ -1,7 +1,9 @@
|
||||
(ns status-im.contexts.centralized-metrics.tracking
|
||||
(:require
|
||||
[clojure.string]
|
||||
[legacy.status-im.utils.build :as build]
|
||||
[react-native.platform :as platform]))
|
||||
[react-native.platform :as platform]
|
||||
[status-im.navigation.screens :as screens]))
|
||||
|
||||
(defn key-value-event
|
||||
[event-name val-key value]
|
||||
@ -19,36 +21,35 @@
|
||||
[view-id]
|
||||
(key-value-event "navigation" :viewId view-id))
|
||||
|
||||
(defn screen-event
|
||||
[screen event-data]
|
||||
(let [screen-id (:name screen)
|
||||
event-id (get-in screen [:metrics :event :id] screen-id)]
|
||||
{:metric
|
||||
{:eventName (name event-id)
|
||||
:platform platform/os
|
||||
:appVersion build/app-short-version
|
||||
:eventValue (assoc event-data
|
||||
:viewId (name screen-id)
|
||||
:viewName (-> screen-id symbol str))}}))
|
||||
|
||||
(def ^:const app-started-event "app-started")
|
||||
|
||||
(def ^:const view-ids-to-track
|
||||
#{;; Tabs
|
||||
:communities-stack
|
||||
:chats-stack
|
||||
:wallet-stack
|
||||
|
||||
;; Onboarding
|
||||
:screen/onboarding.intro
|
||||
:screen/onboarding.new-to-status
|
||||
:screen/onboarding.sync-or-recover-profile
|
||||
:screen/onboarding.enter-seed-phrase
|
||||
:screen/onboarding.create-profile
|
||||
:screen/onboarding.create-profile-password
|
||||
:screen/onboarding.enable-biometrics
|
||||
:screen/onboarding.generating-keys
|
||||
:screen/onboarding.enable-notifications
|
||||
:screen/onboarding.preparing-status
|
||||
:screen/onboarding.sign-in-intro
|
||||
:screen/onboarding.sign-in
|
||||
:screen/onboarding.syncing-progress
|
||||
:screen/onboarding.syncing-progress-intro
|
||||
:screen/onboarding.syncing-results
|
||||
:screen/onboarding.welcome})
|
||||
:wallet-stack})
|
||||
|
||||
(defn track-view-id-event
|
||||
[view-id]
|
||||
(when (contains? view-ids-to-track view-id)
|
||||
(navigation-event (name view-id))))
|
||||
(let [screens-by-name screens/onboarding-screens-by-name]
|
||||
(if-let [screen (get screens-by-name view-id)]
|
||||
(when (get-in screen [:metrics :track?] false)
|
||||
[(navigation-event (name view-id))
|
||||
(screen-event screen {})])
|
||||
(when (contains? view-ids-to-track view-id)
|
||||
(navigation-event (name view-id))))))
|
||||
|
||||
(defn tracked-event
|
||||
[[event-name second-parameter]]
|
||||
|
@ -1,6 +1,7 @@
|
||||
(ns status-im.navigation.screens
|
||||
(:require
|
||||
[legacy.status-im.ui.screens.screens :as old-screens]
|
||||
[legacy.status-im.utils.core :as utils]
|
||||
[quo.foundations.colors :as colors]
|
||||
[status-im.common.emoji-picker.view :as emoji-picker]
|
||||
[status-im.common.enter-seed-phrase.view :as enter-seed-phrase]
|
||||
@ -532,6 +533,7 @@
|
||||
(def onboarding-new-to-status
|
||||
{:name :screen/onboarding.new-to-status
|
||||
:metrics {:flow :onboarding
|
||||
:event {:id :onboarding.create-profile}
|
||||
:track? true}
|
||||
:options {:theme :dark
|
||||
:layout options/onboarding-transparent-layout
|
||||
@ -715,6 +717,9 @@
|
||||
onboarding-syncing-progress-intro
|
||||
onboarding-syncing-results])
|
||||
|
||||
(def onboarding-screens-by-name
|
||||
(utils/index-by :name (onboarding-screens)))
|
||||
|
||||
;; ## All Screens
|
||||
|
||||
(defn screens
|
||||
|
Loading…
x
Reference in New Issue
Block a user