From e0c89dc38e4ee16743b706744d7b278ba964fd0d Mon Sep 17 00:00:00 2001 From: Chelsea Sanders Date: Thu, 13 Jun 2024 18:33:49 +0100 Subject: [PATCH] chore(PROTECT-3160): add dev mode to analytics (#7091) --- .changeset/friendly-clouds-pretend.md | 5 +++++ .changeset/twelve-berries-try.md | 5 +++++ .../ledger-live-desktop/src/renderer/analytics/segment.ts | 4 ++++ .../src/renderer/screens/recover/Player.tsx | 8 +++++++- apps/ledger-live-mobile/src/analytics/segment.ts | 3 +++ apps/ledger-live-mobile/src/screens/Protect/Player.tsx | 4 ++++ 6 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 .changeset/friendly-clouds-pretend.md create mode 100644 .changeset/twelve-berries-try.md diff --git a/.changeset/friendly-clouds-pretend.md b/.changeset/friendly-clouds-pretend.md new file mode 100644 index 00000000000..e04614eeeed --- /dev/null +++ b/.changeset/friendly-clouds-pretend.md @@ -0,0 +1,5 @@ +--- +"live-mobile": patch +--- + +Add Dev Mode as a property to all events & send to Recover Live App diff --git a/.changeset/twelve-berries-try.md b/.changeset/twelve-berries-try.md new file mode 100644 index 00000000000..cc6f4fe0da9 --- /dev/null +++ b/.changeset/twelve-berries-try.md @@ -0,0 +1,5 @@ +--- +"ledger-live-desktop": patch +--- + +Add Dev Mode as a property to all events & send to Recover Live App diff --git a/apps/ledger-live-desktop/src/renderer/analytics/segment.ts b/apps/ledger-live-desktop/src/renderer/analytics/segment.ts index 078dbc7d573..526803ed16a 100644 --- a/apps/ledger-live-desktop/src/renderer/analytics/segment.ts +++ b/apps/ledger-live-desktop/src/renderer/analytics/segment.ts @@ -16,6 +16,7 @@ import { sharePersonalizedRecommendationsSelector, hasSeenAnalyticsOptInPromptSelector, trackingEnabledSelector, + developerModeSelector, } from "~/renderer/reducers/settings"; import { State } from "~/renderer/reducers"; import { AccountLike, Feature, FeatureId, Features, idsToLanguage } from "@ledgerhq/types-live"; @@ -98,8 +99,10 @@ const getMandatoryProperties = (store: ReduxStore) => { const analyticsEnabled = shareAnalyticsSelector(state); const personalizedRecommendationsEnabled = sharePersonalizedRecommendationsSelector(state); const hasSeenAnalyticsOptInPrompt = hasSeenAnalyticsOptInPromptSelector(state); + const devModeEnabled = developerModeSelector(state); return { + devModeEnabled, optInAnalytics: analyticsEnabled, optInPersonalRecommendations: personalizedRecommendationsEnabled, hasSeenAnalyticsOptInPrompt, @@ -115,6 +118,7 @@ const extraProperties = (store: ReduxStore) => { const device = lastSeenDeviceSelector(state); const devices = devicesModelListSelector(state); const accounts = accountsSelector(state); + const { isBatch1Enabled, isBatch2Enabled, diff --git a/apps/ledger-live-desktop/src/renderer/screens/recover/Player.tsx b/apps/ledger-live-desktop/src/renderer/screens/recover/Player.tsx index 568d572e4c2..3612e613178 100644 --- a/apps/ledger-live-desktop/src/renderer/screens/recover/Player.tsx +++ b/apps/ledger-live-desktop/src/renderer/screens/recover/Player.tsx @@ -4,7 +4,11 @@ import { RouteComponentProps, useHistory } from "react-router-dom"; import { useRemoteLiveAppManifest } from "@ledgerhq/live-common/platform/providers/RemoteLiveAppProvider/index"; import { useOnboardingStatePolling } from "@ledgerhq/live-common/onboarding/hooks/useOnboardingStatePolling"; import { OnboardingStep } from "@ledgerhq/live-common/hw/extractOnboardingState"; -import { counterValueCurrencySelector, languageSelector } from "~/renderer/reducers/settings"; +import { + counterValueCurrencySelector, + developerModeSelector, + languageSelector, +} from "~/renderer/reducers/settings"; import WebRecoverPlayer from "~/renderer/components/WebRecoverPlayer"; import useTheme from "~/renderer/hooks/useTheme"; import { getCurrentDevice } from "~/renderer/reducers/devices"; @@ -57,6 +61,7 @@ export default function RecoverPlayer({ const currency = currencySettings.ticker; const device = useSelector(getCurrentDevice); + const devModeEnabled = useSelector(developerModeSelector); const { onboardingState } = useOnboardingStatePolling({ device: device || null, @@ -81,6 +86,7 @@ export default function RecoverPlayer({ availableOnDesktop, deviceId: state?.deviceId, deviceModelId: device?.modelId, + devModeEnabled, currency, ...params, ...queryParams, diff --git a/apps/ledger-live-mobile/src/analytics/segment.ts b/apps/ledger-live-mobile/src/analytics/segment.ts index 838cf0371d3..1a049425acc 100644 --- a/apps/ledger-live-mobile/src/analytics/segment.ts +++ b/apps/ledger-live-mobile/src/analytics/segment.ts @@ -53,6 +53,7 @@ import { BrazePlugin } from "./BrazePlugin"; import { Maybe } from "../types/helpers"; import { appStartupTime } from "../StartupTimeMarker"; import { aggregateData, getUniqueModelIdList } from "../logic/modelIdList"; +import { getEnv } from "@ledgerhq/live-env"; let sessionId = uuid(); const appVersion = `${VersionNumber.appVersion || ""} (${VersionNumber.buildVersion || ""})`; @@ -102,10 +103,12 @@ const getMandatoryProperties = async (store: AppStore) => { const analyticsEnabled = analyticsEnabledSelector(state); const personalizedRecommendationsEnabled = personalizedRecommendationsEnabledSelector(state); const hasSeenAnalyticsOptInPrompt = hasSeenAnalyticsOptInPromptSelector(state); + const devModeEnabled = getEnv("MANAGER_DEV_MODE"); return { userId: user?.id, braze_external_id: user?.id, // Needed for braze with this exact name + devModeEnabled, optInAnalytics: analyticsEnabled, optInPersonalRecommendations: personalizedRecommendationsEnabled, hasSeenAnalyticsOptInPrompt, diff --git a/apps/ledger-live-mobile/src/screens/Protect/Player.tsx b/apps/ledger-live-mobile/src/screens/Protect/Player.tsx index 2142ff70e67..b8ededd16c9 100644 --- a/apps/ledger-live-mobile/src/screens/Protect/Player.tsx +++ b/apps/ledger-live-mobile/src/screens/Protect/Player.tsx @@ -18,6 +18,7 @@ import { NavigatorName, ScreenName } from "~/const"; import { DeviceModelId } from "@ledgerhq/devices"; import { counterValueCurrencySelector } from "~/reducers/settings"; import { useSelector } from "react-redux"; +import useEnv from "@ledgerhq/live-common/hooks/useEnv"; export type Props = RootComposite< StackNavigatorProps @@ -34,6 +35,8 @@ export function RecoverPlayer({ navigation, route }: Props) { const remoteManifest = useRemoteLiveAppManifest(appId); const { state: remoteLiveAppState } = useRemoteLiveAppContext(); const { locale } = useLocale(); + const devModeEnabled = useEnv("MANAGER_DEV_MODE").toString(); + const currencySettings = useSelector(counterValueCurrencySelector); const currency = currencySettings.ticker; const manifest = localManifest || remoteManifest; @@ -82,6 +85,7 @@ export function RecoverPlayer({ navigation, route }: Props) {