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, }