diff --git a/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--dark.png b/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--dark.png
index d16e822a2c31d..58021c0a239a1 100644
Binary files a/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--dark.png and b/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--dark.png differ
diff --git a/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--light.png b/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--light.png
index d4c0a5400fa16..2b1033b0ad265 100644
Binary files a/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--light.png and b/frontend/__snapshots__/scenes-other-billing-v2--billing-v-2--light.png differ
diff --git a/frontend/src/scenes/onboarding/Onboarding.tsx b/frontend/src/scenes/onboarding/Onboarding.tsx
index 8a6f5501c4ebf..e475d1dac54e0 100644
--- a/frontend/src/scenes/onboarding/Onboarding.tsx
+++ b/frontend/src/scenes/onboarding/Onboarding.tsx
@@ -197,7 +197,11 @@ const SessionReplayOnboarding = (): JSX.Element => {
subtitle="Choose the framework your frontend is built on, or use our all-purpose JavaScript library. If you already have the snippet installed, you can skip this step!"
stepKey={OnboardingStepKey.INSTALL}
/>
-
+
)
}
diff --git a/frontend/src/scenes/onboarding/OnboardingProductConfiguration.tsx b/frontend/src/scenes/onboarding/OnboardingProductConfiguration.tsx
index 490e3159deb4b..7fcab344a6034 100644
--- a/frontend/src/scenes/onboarding/OnboardingProductConfiguration.tsx
+++ b/frontend/src/scenes/onboarding/OnboardingProductConfiguration.tsx
@@ -3,6 +3,8 @@ import { useActions, useValues } from 'kea'
import React, { useEffect, useRef } from 'react'
import { pipelineDefaultEnabledLogic } from 'scenes/pipeline/pipelineDefaultEnabledLogic'
+import { ProductKey } from '~/types'
+
import { OnboardingStepKey } from './onboardingLogic'
import { onboardingProductConfigurationLogic, ProductConfigOption } from './onboardingProductConfigurationLogic'
import { OnboardingStep } from './OnboardingStep'
@@ -29,9 +31,12 @@ type ConfigOption =
export const OnboardingProductConfiguration = ({
stepKey = OnboardingStepKey.PRODUCT_CONFIGURATION,
options,
+ product,
}: {
stepKey?: OnboardingStepKey
options: (ProductConfigOption | undefined)[]
+ // which product is being configured
+ product?: ProductKey
}): JSX.Element | null => {
const { configOptions } = useValues(onboardingProductConfigurationLogic)
const { pipelineDefaultEnabled } = useValues(pipelineDefaultEnabledLogic)
@@ -66,20 +71,24 @@ export const OnboardingProductConfiguration = ({
setConfigOptions(updatedConfigOptions)
},
})),
- ...pipelineDefaultEnabled.map((item) => {
- return {
- title: item.title,
- description: item.description,
- type: 'plugin' as PluginType,
- value: item.enabled,
- onChange: (enabled: boolean) => {
- toggleEnabled({
- id: item.id,
- enabled: enabled,
- })
- },
- }
- }),
+ ...pipelineDefaultEnabled
+ .filter((plugin) => {
+ return !(product && plugin?.productOnboardingDenyList?.includes(product))
+ })
+ .map((item) => {
+ return {
+ title: item.title,
+ description: item.description,
+ type: 'plugin' as PluginType,
+ value: item.enabled,
+ onChange: (enabled: boolean) => {
+ toggleEnabled({
+ id: item.id,
+ enabled: enabled,
+ })
+ },
+ }
+ }),
]
return combinedList.length > 0 ? (
diff --git a/frontend/src/scenes/pipeline/pipelineDefaultEnabledLogic.tsx b/frontend/src/scenes/pipeline/pipelineDefaultEnabledLogic.tsx
index e038caeba9c4b..327dabc53afae 100644
--- a/frontend/src/scenes/pipeline/pipelineDefaultEnabledLogic.tsx
+++ b/frontend/src/scenes/pipeline/pipelineDefaultEnabledLogic.tsx
@@ -1,24 +1,32 @@
import { connect, kea, path, selectors } from 'kea'
+import { ProductKey } from '~/types'
+
import type { pipelineDefaultEnabledLogicType } from './pipelineDefaultEnabledLogicType'
import { pipelineTransformationsLogic } from './transformationsLogic'
interface PluginContent {
title: string
description: string
+ // which onboarding pages should this plugin be hidden on
+ // e.g. geolocation doesn't apply to session replay
+ productOnboardingDenyList?: ProductKey[]
}
+
type PluginContentMapping = Record
-const pluginContentMapping: PluginContentMapping = {
+export const pluginContentMapping: PluginContentMapping = {
GeoIP: {
title: 'Capture location information',
description:
'Enrich PostHog events and persons with IP location data. This is useful for understanding where your users are coming from. This setting can be found under data pipeline.',
+ productOnboardingDenyList: [ProductKey.SESSION_REPLAY],
},
}
export interface DefaultEnabledType {
title: string
description?: string
+ productOnboardingDenyList?: ProductKey[]
id: number
enabled: boolean
}
@@ -45,6 +53,7 @@ export const pipelineDefaultEnabledLogic = kea(
return {
title: pluginContent?.title || plugin.name,
description: pluginContent?.description || plugin.description,
+ productOnboardingDenyList: pluginContent?.productOnboardingDenyList,
id: pluginConfig.id,
enabled: pluginConfig.enabled,
}