diff --git a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/mode/page.tsx b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/mode/page.tsx index aa7a440c8596..b660ab7547bf 100644 --- a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/mode/page.tsx +++ b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/mode/page.tsx @@ -2,7 +2,6 @@ import { HeartIcon, ListTodoIcon, XIcon } from "lucide-react"; import Link from "next/link"; import { redirect } from "next/navigation"; import { OnboardingOptionsContainer } from "@/app/(app)/(onboarding)/organizations/components/OnboardingOptionsContainer"; -import { getPostHogFeatureFlag } from "@/lib/posthog/get-feature-flag"; import { getUserWorkspaces } from "@/lib/workspace/service"; import { getTranslate } from "@/lingodotdev/server"; import { getOrganizationAuth } from "@/modules/organization/lib/utils"; @@ -24,13 +23,6 @@ const Page = async (props: ModePageProps) => { return redirect(`/auth/login`); } - const experimentVariant = - (await getPostHogFeatureFlag(session.user.id, "a-b_onboarding_skip-first-screen")) || "control"; - - if (experimentVariant === "remove-cx-and-surveys-mode") { - return redirect(`/organizations/${params.organizationId}/workspaces/new/channel`); - } - const t = await getTranslate(); const channelOptions = [ { diff --git a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/plan/components/select-plan-onboarding.tsx b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/plan/components/select-plan-onboarding.tsx index eacca42fb595..a26ebccb715d 100644 --- a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/plan/components/select-plan-onboarding.tsx +++ b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/plan/components/select-plan-onboarding.tsx @@ -1,17 +1,26 @@ import { SelectPlanCard } from "@/modules/ee/billing/components/select-plan-card"; -import { type TPlanVariant } from "@/modules/ee/billing/lib/select-plan-variants"; interface SelectPlanOnboardingProps { organizationId: string; - variant: TPlanVariant; + featureVariant: "control" | "variant_b"; + ctaVariant: "control" | "variant_b" | "variant_c" | "variant_d"; } -export const SelectPlanOnboarding = ({ organizationId, variant }: Readonly) => { +export const SelectPlanOnboarding = ({ + organizationId, + featureVariant, + ctaVariant, +}: Readonly) => { const nextUrl = `/organizations/${organizationId}/workspaces/new/mode`; return (
- +
); }; diff --git a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/plan/page.tsx b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/plan/page.tsx index 15a9e88a8c41..2243f034e43c 100644 --- a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/plan/page.tsx +++ b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/plan/page.tsx @@ -3,12 +3,10 @@ import { TCloudBillingPlan } from "@formbricks/types/organizations"; import { IS_FORMBRICKS_CLOUD } from "@/lib/constants"; import { getPostHogFeatureFlag } from "@/lib/posthog/get-feature-flag"; import { getOrganizationBillingWithReadThroughSync } from "@/modules/ee/billing/lib/organization-billing"; -import { PLAN_VARIANTS, type TPlanVariant } from "@/modules/ee/billing/lib/select-plan-variants"; import { getOrganizationAuth } from "@/modules/organization/lib/utils"; import { SelectPlanOnboarding } from "./components/select-plan-onboarding"; const PAID_PLANS = new Set(["pro", "scale", "custom"]); -const VALID_VARIANTS = new Set(PLAN_VARIANTS); interface PlanPageProps { params: Promise<{ @@ -39,24 +37,28 @@ const Page = async (props: PlanPageProps) => { return redirect(`/organizations/${params.organizationId}/workspaces/new/mode`); } - let variant: TPlanVariant = "control"; - const flagValue = await getPostHogFeatureFlag( - session.user.id, - "a-b_onboarding_trial-conversion-screen-copy", - { + const [featureFlagValue, ctaFlagValue] = await Promise.all([ + getPostHogFeatureFlag(session.user.id, "a-b_onboarding_trial-conversion-screen-feature-copy", { organizationId: params.organizationId, - } - ); - if (typeof flagValue === "string" && VALID_VARIANTS.has(flagValue as TPlanVariant)) { - variant = flagValue as TPlanVariant; - } + }), + getPostHogFeatureFlag(session.user.id, "a-b_onboarding_trial-conversion-screen-cta", { + organizationId: params.organizationId, + }), + ]); - const selectPlanOnboardingProps = { - organizationId: params.organizationId, - variant, - }; + const featureVariant = featureFlagValue === "variant_b" ? "variant_b" : "control"; + const ctaVariant = + ctaFlagValue === "variant_b" || ctaFlagValue === "variant_c" || ctaFlagValue === "variant_d" + ? ctaFlagValue + : "control"; - return ; + return ( + + ); }; export default Page; diff --git a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/settings/page.tsx b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/settings/page.tsx index 8d8e3e830525..379993b3b283 100644 --- a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/settings/page.tsx +++ b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/settings/page.tsx @@ -12,15 +12,12 @@ import { WorkspaceSettings } from "@/app/(app)/(onboarding)/organizations/[organ import { DEFAULT_BRAND_COLOR } from "@/lib/constants"; import { getPublicDomain } from "@/lib/getPublicUrl"; import { capturePostHogEvent } from "@/lib/posthog"; -import { getPostHogFeatureFlag } from "@/lib/posthog/get-feature-flag"; -import { buildStylingFromBrandColor } from "@/lib/styling/constants"; import { getUserWorkspaces } from "@/lib/workspace/service"; import { getTranslate } from "@/lingodotdev/server"; import { getAccessControlPermission } from "@/modules/ee/license-check/lib/utils"; import { getOrganizationAuth } from "@/modules/organization/lib/utils"; import { Button } from "@/modules/ui/components/button"; import { Header } from "@/modules/ui/components/header"; -import { createWorkspace } from "@/modules/workspaces/settings/lib/workspace"; interface WorkspaceSettingsPageProps { params: Promise<{ @@ -48,28 +45,8 @@ const Page = async (props: WorkspaceSettingsPageProps) => { const industry = searchParams.industry ?? null; const mode = searchParams.mode ?? "surveys"; - const experimentVariant = - (await getPostHogFeatureFlag(session.user.id, "a-b_onboarding_skip-theme-screen")) || "control"; - const workspaces = await getUserWorkspaces(session.user.id, params.organizationId); - if (experimentVariant === "remove-theme") { - const existing = workspaces.find((w) => w.name === organization.name); - const workspace = - existing ?? - (await createWorkspace(params.organizationId, { - name: organization.name, - styling: buildStylingFromBrandColor(DEFAULT_BRAND_COLOR), - config: { channel, industry }, - })); - if (channel === "app" || channel === "website") { - return redirect(`/workspaces/${workspace.id}/connect`); - } else if (channel === "link") { - return redirect(`/workspaces/${workspace.id}/surveys`); - } - return redirect(`/workspaces/${workspace.id}/xm-templates`); - } - const organizationTeams = await getTeamsByOrganizationId(params.organizationId); const isAccessControlAllowed = await getAccessControlPermission(organization.id); diff --git a/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx b/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx index aefadba594a3..2c235d643ceb 100644 --- a/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx +++ b/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx @@ -603,7 +603,6 @@ export const MainNavigation = ({ responseLimit={organization.billing.limits.monthly.responses} baseResponseLimit={TRIAL_BASE_RESPONSE_LIMIT} billingHref={`/workspaces/${workspace.id}/settings/organization/billing`} - hasPaymentMethod={organization.billing.stripe?.hasPaymentMethod} /> ) : ( +
) => { +export const SelectPlanCard = ({ + nextUrl, + organizationId, + featureVariant, + ctaVariant, +}: Readonly) => { const router = useRouter(); const [isStartingTrial, setIsStartingTrial] = useState(false); const [isStartingHobby, setIsStartingHobby] = useState(false); const { t } = useTranslation(); - const isVariantB = variant === "variant_b"; - const isVariantC = variant === "variant_c"; - const copy = isVariantB - ? { - header: t("workspace.settings.billing.select_plan_variant_b_header"), - subheader: t("workspace.settings.billing.select_plan_variant_b_subheader"), - cta: t("workspace.settings.billing.select_plan_variant_b_cta"), - skip: t("workspace.settings.billing.select_plan_variant_b_skip"), - } - : isVariantC - ? { - header: t("workspace.settings.billing.select_plan_variant_c_header"), - subheader: t("workspace.settings.billing.select_plan_variant_c_subheader"), - cta: t("workspace.settings.billing.select_plan_variant_c_cta"), - skip: t("workspace.settings.billing.select_plan_variant_c_skip"), - } - : { - header: t("workspace.settings.billing.select_plan_header"), - subheader: t("workspace.settings.billing.select_plan_subheader"), - cta: t("workspace.settings.billing.select_plan_cta"), - skip: t("workspace.settings.billing.select_plan_skip"), - }; + let ctaCopy: string; + if (ctaVariant === "variant_b") { + ctaCopy = t("workspace.settings.billing.select_plan_cta_variant_b"); + } else if (ctaVariant === "variant_c") { + ctaCopy = t("workspace.settings.billing.select_plan_cta_variant_c"); + } else if (ctaVariant === "variant_d") { + ctaCopy = t("workspace.settings.billing.select_plan_cta_variant_d"); + } else { + ctaCopy = t("workspace.settings.billing.select_plan_cta"); + } + + const copy = { + header: t("workspace.settings.billing.select_plan_header"), + subheader: t("workspace.settings.billing.select_plan_subheader"), + cta: ctaCopy, + skip: t("workspace.settings.billing.select_plan_skip"), + }; - const SELECT_PLAN_FEATURE_KEYS = [ - t("workspace.settings.billing.select_plan_feature_1"), - t("workspace.settings.billing.select_plan_feature_2"), - t("workspace.settings.billing.select_plan_feature_3"), - ] as const; + const SELECT_PLAN_FEATURE_KEYS = + featureVariant === "variant_b" + ? [ + t("workspace.settings.billing.select_plan_variant_b_feature_1"), + t("workspace.settings.billing.select_plan_variant_b_feature_2"), + t("workspace.settings.billing.select_plan_variant_b_feature_3"), + t("workspace.settings.billing.select_plan_variant_b_feature_4"), + ] + : [ + t("workspace.settings.billing.select_plan_feature_1"), + t("workspace.settings.billing.select_plan_feature_2"), + t("workspace.settings.billing.select_plan_feature_3"), + ]; const handleStartTrial = async () => { setIsStartingTrial(true); diff --git a/apps/web/modules/ee/billing/components/trial-banner-new.tsx b/apps/web/modules/ee/billing/components/trial-banner-new.tsx index fe8fd4a521fc..a218a44860c7 100644 --- a/apps/web/modules/ee/billing/components/trial-banner-new.tsx +++ b/apps/web/modules/ee/billing/components/trial-banner-new.tsx @@ -14,7 +14,6 @@ interface TrialBannerNewProps { responseLimit: number | null; baseResponseLimit: number; billingHref: string; - hasPaymentMethod?: boolean; } export const TrialBannerNew = ({ @@ -24,7 +23,6 @@ export const TrialBannerNew = ({ responseLimit, baseResponseLimit, billingHref, - hasPaymentMethod = false, }: TrialBannerNewProps) => { const { t, i18n } = useTranslation(); const locale = i18n.resolvedLanguage ?? i18n.language ?? "en-US"; @@ -59,15 +57,13 @@ export const TrialBannerNew = ({ />
- {!hasPaymentMethod && ( - - )} + ); }; diff --git a/apps/web/modules/ee/billing/lib/select-plan-variants.test.ts b/apps/web/modules/ee/billing/lib/select-plan-variants.test.ts deleted file mode 100644 index 2ef1029fbc35..000000000000 --- a/apps/web/modules/ee/billing/lib/select-plan-variants.test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { describe, expect, test } from "vitest"; -import { PLAN_VARIANTS, type TPlanVariant } from "./select-plan-variants"; - -describe("PLAN_VARIANTS", () => { - test("contains exactly the expected variants", () => { - expect(PLAN_VARIANTS).toEqual(["control", "variant_b", "variant_c"]); - }); - - test("TPlanVariant covers all entries", () => { - const variants: TPlanVariant[] = [...PLAN_VARIANTS]; - expect(variants).toHaveLength(3); - }); -}); diff --git a/apps/web/modules/ee/billing/lib/select-plan-variants.ts b/apps/web/modules/ee/billing/lib/select-plan-variants.ts deleted file mode 100644 index 9a6409c61072..000000000000 --- a/apps/web/modules/ee/billing/lib/select-plan-variants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const PLAN_VARIANTS = ["control", "variant_b", "variant_c"] as const; - -export type TPlanVariant = (typeof PLAN_VARIANTS)[number]; diff --git a/apps/web/modules/survey/editor/components/elements-view.tsx b/apps/web/modules/survey/editor/components/elements-view.tsx index 33d53f2daaf9..a04d2650e9af 100644 --- a/apps/web/modules/survey/editor/components/elements-view.tsx +++ b/apps/web/modules/survey/editor/components/elements-view.tsx @@ -73,7 +73,6 @@ interface ElementsViewProps { isStorageConfigured: boolean; quotas: TSurveyQuota[]; isExternalUrlsAllowed: boolean; - moveHiddenFieldsToSettingsTab?: boolean; } export const ElementsView = ({ @@ -93,7 +92,6 @@ export const ElementsView = ({ isStorageConfigured = true, quotas, isExternalUrlsAllowed, - moveHiddenFieldsToSettingsTab = false, }: ElementsViewProps) => { const { t } = useTranslation(); const [logicDeletionWarning, setLogicDeletionWarning] = React.useState<{ @@ -924,25 +922,21 @@ export const ElementsView = ({ {!isCxMode && ( <> - {!moveHiddenFieldsToSettingsTab && ( - <> -
- - - - )} +
+ + )} diff --git a/apps/web/modules/survey/editor/components/hidden-fields-card.tsx b/apps/web/modules/survey/editor/components/hidden-fields-card.tsx index ad588fa79717..064648303197 100644 --- a/apps/web/modules/survey/editor/components/hidden-fields-card.tsx +++ b/apps/web/modules/survey/editor/components/hidden-fields-card.tsx @@ -2,7 +2,7 @@ import { useAutoAnimate } from "@formkit/auto-animate/react"; import * as Collapsible from "@radix-ui/react-collapsible"; -import { CheckIcon, EyeOff } from "lucide-react"; +import { EyeOff } from "lucide-react"; import { useMemo, useState } from "react"; import { toast } from "react-hot-toast"; import { useTranslation } from "react-i18next"; @@ -25,7 +25,6 @@ interface HiddenFieldsCardProps { activeElementId: string | null; setActiveElementId: (elementId: string | null) => void; quotas: TSurveyQuota[]; - inSettings?: boolean; } export const HiddenFieldsCard = ({ @@ -34,7 +33,6 @@ export const HiddenFieldsCard = ({ setActiveElementId, setLocalSurvey, quotas, - inSettings = false, }: HiddenFieldsCardProps) => { const open = activeElementId == "hidden"; const [hiddenField, setHiddenField] = useState(""); @@ -148,108 +146,8 @@ export const HiddenFieldsCard = ({ ); }; - // Auto Animate const [parent] = useAutoAnimate(); - const content = ( - - {inSettings &&
} -
- {localSurvey.hiddenFields?.fieldIds && localSurvey.hiddenFields?.fieldIds?.length > 0 ? ( - localSurvey.hiddenFields?.fieldIds?.map((fieldId) => { - return ( - handleDeleteHiddenField(fieldId)} - tagId={fieldId} - tagName={fieldId} - /> - ); - }) - ) : ( -

- {t("workspace.surveys.edit.no_hidden_fields_yet_add_first_one_below")} -

- )} -
-
{ - e.preventDefault(); - const existingElementIds = elements.map((element) => element.id); - const existingEndingCardIds = localSurvey.endings.map((ending) => ending.id); - const existingHiddenFieldIds = localSurvey.hiddenFields.fieldIds ?? []; - const existingVariableNames = localSurvey.variables.map((v) => v.name); - const validateIdError = validateId( - hiddenField, - existingElementIds, - existingEndingCardIds, - existingHiddenFieldIds, - existingVariableNames - ); - - if (validateIdError) { - toast.error(getValidateIdErrorMessage(validateIdError, "hiddenField", t)); - return; - } - - updateSurvey({ - fieldIds: [...(localSurvey.hiddenFields?.fieldIds || []), hiddenField], - enabled: true, - }); - toast.success(t("workspace.surveys.edit.hidden_field_added_successfully")); - setHiddenField(""); - }}> - -
- setHiddenField(e.target.value.trim())} - placeholder={t("workspace.surveys.edit.type_field_id") + "..."} - /> - -
-
-
- ); - - if (inSettings) { - return ( - - -
-
- -
-
-

{t("common.hidden_fields")}

-

- {t("workspace.surveys.edit.hidden_fields_description")} -

-
-
-
- {content} -
- ); - } - return (
- {content} + +
+ {localSurvey.hiddenFields?.fieldIds && localSurvey.hiddenFields?.fieldIds?.length > 0 ? ( + localSurvey.hiddenFields?.fieldIds?.map((fieldId) => { + return ( + handleDeleteHiddenField(fieldId)} + tagId={fieldId} + tagName={fieldId} + /> + ); + }) + ) : ( +

+ {t("workspace.surveys.edit.no_hidden_fields_yet_add_first_one_below")} +

+ )} +
+
{ + e.preventDefault(); + const existingElementIds = elements.map((element) => element.id); + const existingEndingCardIds = localSurvey.endings.map((ending) => ending.id); + const existingHiddenFieldIds = localSurvey.hiddenFields.fieldIds ?? []; + const existingVariableNames = localSurvey.variables.map((v) => v.name); + const validateIdError = validateId( + hiddenField, + existingElementIds, + existingEndingCardIds, + existingHiddenFieldIds, + existingVariableNames + ); + + if (validateIdError) { + toast.error(getValidateIdErrorMessage(validateIdError, "hiddenField", t)); + return; + } + + updateSurvey({ + fieldIds: [...(localSurvey.hiddenFields?.fieldIds || []), hiddenField], + enabled: true, + }); + toast.success(t("workspace.surveys.edit.hidden_field_added_successfully")); + setHiddenField(""); + }}> + +
+ setHiddenField(e.target.value.trim())} + placeholder={t("workspace.surveys.edit.type_field_id") + "..."} + /> + +
+
+
); diff --git a/apps/web/modules/survey/editor/components/settings-view.tsx b/apps/web/modules/survey/editor/components/settings-view.tsx index b95450af329f..10953c56392a 100644 --- a/apps/web/modules/survey/editor/components/settings-view.tsx +++ b/apps/web/modules/survey/editor/components/settings-view.tsx @@ -8,12 +8,10 @@ import { TUserLocale } from "@formbricks/types/user"; import { TargetingCard } from "@/modules/ee/contacts/segments/components/targeting-card"; import { QuotasCard } from "@/modules/ee/quotas/components/quotas-card"; import { TTeamPermission } from "@/modules/ee/teams/workspace-teams/types/team"; -import { HiddenFieldsCard } from "@/modules/survey/editor/components/hidden-fields-card"; import { HowToSendCard } from "@/modules/survey/editor/components/how-to-send-card"; import { RecontactOptionsCard } from "@/modules/survey/editor/components/recontact-options-card"; import { ResponseOptionsCard } from "@/modules/survey/editor/components/response-options-card"; import { SurveyPlacementCard } from "@/modules/survey/editor/components/survey-placement-card"; -import { SurveyVariablesCard } from "@/modules/survey/editor/components/survey-variables-card"; import { TargetingLockedCard } from "@/modules/survey/editor/components/targeting-locked-card"; import { WhenToSendCard } from "@/modules/survey/editor/components/when-to-send-card"; @@ -34,9 +32,6 @@ interface SettingsViewProps { locale: TUserLocale; appSetupCompleted: boolean; enterpriseLicenseRequestFormUrl: string; - moveHiddenFieldsToSettingsTab?: boolean; - activeElementId?: string | null; - setActiveElementId?: (elementId: string | null) => void; } export const SettingsView = ({ @@ -56,9 +51,6 @@ export const SettingsView = ({ locale, appSetupCompleted, enterpriseLicenseRequestFormUrl, - moveHiddenFieldsToSettingsTab = false, - activeElementId, - setActiveElementId, }: SettingsViewProps) => { const isAppSurvey = localSurvey.type === "app"; @@ -123,27 +115,6 @@ export const SettingsView = ({ {isAppSurvey && } - - {moveHiddenFieldsToSettingsTab && setActiveElementId && ( - <> - - - - )} ); }; diff --git a/apps/web/modules/survey/editor/components/survey-editor.tsx b/apps/web/modules/survey/editor/components/survey-editor.tsx index efa08b295019..49e572e57797 100644 --- a/apps/web/modules/survey/editor/components/survey-editor.tsx +++ b/apps/web/modules/survey/editor/components/survey-editor.tsx @@ -50,7 +50,6 @@ interface SurveyEditorProps { quotas: TSurveyQuota[]; isExternalUrlsAllowed: boolean; publicDomain: string; - moveHiddenFieldsToSettingsTab?: boolean; enterpriseLicenseRequestFormUrl: string; } @@ -80,7 +79,6 @@ export const SurveyEditor = ({ quotas, isExternalUrlsAllowed, publicDomain, - moveHiddenFieldsToSettingsTab = false, enterpriseLicenseRequestFormUrl, }: SurveyEditorProps) => { const [activeView, setActiveView] = useState("elements"); @@ -223,7 +221,6 @@ export const SurveyEditor = ({ isStorageConfigured={isStorageConfigured} quotas={quotas} isExternalUrlsAllowed={isExternalUrlsAllowed} - moveHiddenFieldsToSettingsTab={moveHiddenFieldsToSettingsTab} /> )} @@ -272,9 +269,6 @@ export const SurveyEditor = ({ locale={locale} appSetupCompleted={localWorkspace.appSetupCompleted} enterpriseLicenseRequestFormUrl={enterpriseLicenseRequestFormUrl} - moveHiddenFieldsToSettingsTab={moveHiddenFieldsToSettingsTab} - activeElementId={activeElementId} - setActiveElementId={setActiveElementId} /> )} diff --git a/apps/web/modules/survey/editor/components/survey-variables-card.tsx b/apps/web/modules/survey/editor/components/survey-variables-card.tsx index 11b5d47ee3e7..90e73d698928 100644 --- a/apps/web/modules/survey/editor/components/survey-variables-card.tsx +++ b/apps/web/modules/survey/editor/components/survey-variables-card.tsx @@ -2,7 +2,7 @@ import { useAutoAnimate } from "@formkit/auto-animate/react"; import * as Collapsible from "@radix-ui/react-collapsible"; -import { CheckIcon, FileDigitIcon } from "lucide-react"; +import { FileDigitIcon } from "lucide-react"; import { type Dispatch, type SetStateAction } from "react"; import { useTranslation } from "react-i18next"; import { TSurveyQuota } from "@formbricks/types/quota"; @@ -17,7 +17,6 @@ interface SurveyVariablesCardProps { activeElementId: string | null; setActiveElementId: (id: string | null) => void; quotas: TSurveyQuota[]; - inSettings?: boolean; } const variablesCardId = `fb-variables-${Date.now()}`; @@ -28,7 +27,6 @@ export const SurveyVariablesCard = ({ activeElementId, setActiveElementId, quotas, - inSettings = false, }: SurveyVariablesCardProps) => { const open = activeElementId === variablesCardId; const { t } = useTranslation(); @@ -43,77 +41,6 @@ export const SurveyVariablesCard = ({ } }; - const content = ( - - {inSettings &&
} -
- {localSurvey.variables.length > 0 ? ( - localSurvey.variables.map((variable) => ( - - )) - ) : ( -

- {t("workspace.surveys.edit.no_variables_yet_add_first_one_below")} -

- )} -
- -
- -
- - {localSurvey.variables.length > 0 && ( -
- -
- )} -
- ); - - if (inSettings) { - return ( - - -
-
- -
-
-

{t("common.variables")}

-

- {t("workspace.surveys.edit.variables_description")} -

-
-
-
- {content} -
- ); - } - return (
- {content} + +
+ {localSurvey.variables.length > 0 ? ( + localSurvey.variables.map((variable) => ( + + )) + ) : ( +

+ {t("workspace.surveys.edit.no_variables_yet_add_first_one_below")} +

+ )} +
+ + + + {localSurvey.variables.length > 0 && ( +
+ +
+ )} +
); diff --git a/apps/web/modules/survey/editor/page.tsx b/apps/web/modules/survey/editor/page.tsx index d76b14a502d0..9495edac8343 100644 --- a/apps/web/modules/survey/editor/page.tsx +++ b/apps/web/modules/survey/editor/page.tsx @@ -9,7 +9,6 @@ import { UNSPLASH_ACCESS_KEY, } from "@/lib/constants"; import { getPublicDomain } from "@/lib/getPublicUrl"; -import { getPostHogFeatureFlag } from "@/lib/posthog"; import { getTranslate } from "@/lingodotdev/server"; import { getContactAttributeKeys } from "@/modules/ee/contacts/lib/contact-attribute-keys"; import { getSegments } from "@/modules/ee/contacts/segments/lib/segments"; @@ -93,12 +92,10 @@ export const SurveyEditorPage = async (props: { ]); const quotas = isQuotasAllowed && survey ? await getQuotas(survey.id) : []; - const [workspaceLanguages, teamMemberDetails, moveHiddenFieldsToSettingsTabFlag] = await Promise.all([ + const [workspaceLanguages, teamMemberDetails] = await Promise.all([ getWorkspaceLanguages(workspaceWithTeamIds.id), getTeamMemberDetails(workspaceWithTeamIds.teamIds), - getPostHogFeatureFlag(session.user.id, "a-b_survey-editor_move-hidden-fields-to-settings"), ]); - const moveHiddenFieldsToSettingsTab = moveHiddenFieldsToSettingsTabFlag === "in-settings"; if ( !survey || @@ -142,7 +139,6 @@ export const SurveyEditorPage = async (props: { isExternalUrlsAllowed={isExternalUrlsAllowed} publicDomain={publicDomain} enterpriseLicenseRequestFormUrl={ENTERPRISE_LICENSE_REQUEST_FORM_URL} - moveHiddenFieldsToSettingsTab={moveHiddenFieldsToSettingsTab} /> ); };