Kaynağa Gözat

Merge pull request #22705 from overleaf/mf-tear-down-paywall-cta

[web] Tear down `paywall-cta` split test

GitOrigin-RevId: 8cfba819b80bb34f48f8fc1fec37aee6791ef9f0
M Fahru 1 yıl önce
ebeveyn
işleme
ad677afa81

+ 0 - 1
services/web/app/src/Features/Project/ProjectController.js

@@ -338,7 +338,6 @@ const _ProjectController = {
       'external-socket-heartbeat',
       'full-project-search',
       'null-test-share-modal',
-      'paywall-cta',
       'pdf-caching-cached-url-lookup',
       'pdf-caching-mode',
       'pdf-caching-prefetch-large',

+ 0 - 9
services/web/app/src/Features/Project/ProjectListController.mjs

@@ -409,15 +409,6 @@ async function projectListPage(req, res, next) {
     logger.error({ err: error }, 'Failed to get individual subscription')
   }
 
-  try {
-    await SplitTestHandler.promises.getAssignment(req, res, 'paywall-cta')
-  } catch (error) {
-    logger.error(
-      { err: error },
-      'failed to get "paywall-cta" split test assignment'
-    )
-  }
-
   // Get the user's assignment for the DS unified nav split test, which
   // populates splitTestVariants with a value for the split test name and allows
   // Pug to send it to the browser

+ 0 - 10
services/web/frontend/extracted-translations.json

@@ -604,21 +604,14 @@
   "generic_if_problem_continues_contact_us": "",
   "generic_linked_file_compile_error": "",
   "generic_something_went_wrong": "",
-  "get_advanced_reference_search": "",
   "get_collaborative_benefits": "",
   "get_discounted_plan": "",
-  "get_dropbox_sync": "",
   "get_error_assist": "",
   "get_exclusive_access_to_labs": "",
-  "get_full_project_history": "",
-  "get_git_integration": "",
-  "get_github_sync": "",
   "get_in_touch": "",
   "get_more_compile_time": "",
   "get_most_subscription_by_checking_features": "",
   "get_most_subscription_discover_premium_features": "",
-  "get_symbol_palette": "",
-  "get_track_changes": "",
   "git": "",
   "git_authentication_token": "",
   "git_authentication_token_create_modal_info_1": "",
@@ -988,7 +981,6 @@
   "maximum_files_uploaded_together": "",
   "maybe_later": "",
   "members_management": "",
-  "mendeley_cta": "",
   "mendeley_dynamic_sync_description": "",
   "mendeley_groups_loading_error": "",
   "mendeley_groups_relink": "",
@@ -1137,7 +1129,6 @@
   "owner": "",
   "page_current": "",
   "pagination_navigation": "",
-  "papers_cta": "",
   "papers_dynamic_sync_description": "",
   "papers_groups_loading_error": "",
   "papers_groups_relink": "",
@@ -2139,7 +2130,6 @@
   "zoom_in": "",
   "zoom_out": "",
   "zoom_to": "",
-  "zotero_cta": "",
   "zotero_dynamic_sync_description": "",
   "zotero_groups_loading_error": "",
   "zotero_groups_relink": "",

+ 1 - 6
services/web/frontend/js/features/history/components/change-list/owner-paywall-prompt.tsx

@@ -3,7 +3,6 @@ import Icon from '../../../../shared/components/icon'
 import { useCallback, useEffect, useState } from 'react'
 import * as eventTracking from '../../../../infrastructure/event-tracking'
 import StartFreeTrialButton from '../../../../shared/components/start-free-trial-button'
-import { useFeatureFlag } from '@/shared/context/split-test-context'
 
 function FeatureItem({ text }: { text: string }) {
   return (
@@ -17,8 +16,6 @@ export function OwnerPaywallPrompt() {
   const { t } = useTranslation()
   const [clickedFreeTrialButton, setClickedFreeTrialButton] = useState(false)
 
-  const hasNewPaywallCta = useFeatureFlag('paywall-cta')
-
   useEffect(() => {
     eventTracking.send('subscription-funnel', 'editor-click-feature', 'history')
     eventTracking.sendMB('paywall-prompt', { 'paywall-type': 'history' })
@@ -53,9 +50,7 @@ export function OwnerPaywallPrompt() {
           buttonProps={{ variant: 'premium' }}
           handleClick={handleFreeTrialClick}
         >
-          {hasNewPaywallCta
-            ? t('get_full_project_history')
-            : t('start_free_trial')}
+          {t('start_free_trial')}
         </StartFreeTrialButton>
       </p>
       {clickedFreeTrialButton ? (

+ 1 - 6
services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.tsx

@@ -2,15 +2,12 @@ import Notification from '@/shared/components/notification'
 import StartFreeTrialButton from '@/shared/components/start-free-trial-button'
 import { useTranslation } from 'react-i18next'
 import { FC } from 'react'
-import { useFeatureFlag } from '@/shared/context/split-test-context'
 
 export const CompileTimeWarningUpgradePromptInner: FC<{
   handleDismissWarning: () => void
 }> = ({ handleDismissWarning }) => {
   const { t } = useTranslation()
 
-  const hasNewPaywallCta = useFeatureFlag('paywall-cta')
-
   return (
     <Notification
       action={
@@ -21,9 +18,7 @@ export const CompileTimeWarningUpgradePromptInner: FC<{
             variant: 'secondary',
           }}
         >
-          {hasNewPaywallCta
-            ? t('get_more_compile_time')
-            : t('start_free_trial_without_exclamation')}
+          {t('start_free_trial_without_exclamation')}
         </StartFreeTrialButton>
       }
       ariaLive="polite"

+ 1 - 6
services/web/frontend/js/features/pdf-preview/components/timeout-upgrade-prompt-new.tsx

@@ -6,7 +6,6 @@ import PdfLogEntry from './pdf-log-entry'
 import { useStopOnFirstError } from '../../../shared/hooks/use-stop-on-first-error'
 import OLButton from '@/features/ui/components/ol/ol-button'
 import * as eventTracking from '../../../infrastructure/event-tracking'
-import { useFeatureFlag } from '@/shared/context/split-test-context'
 import getMeta from '@/utils/meta'
 
 function TimeoutUpgradePromptNew() {
@@ -50,8 +49,6 @@ const CompileTimeout = memo(function CompileTimeout({
 }: CompileTimeoutProps) {
   const { t } = useTranslation()
 
-  const hasNewPaywallCta = useFeatureFlag('paywall-cta')
-
   return (
     <PdfLogEntry
       headerTitle={t('your_compile_timed_out')}
@@ -86,9 +83,7 @@ const CompileTimeout = memo(function CompileTimeout({
                   source="compile-timeout"
                   buttonProps={{ variant: 'primary', className: 'w-100' }}
                 >
-                  {hasNewPaywallCta
-                    ? t('get_more_compile_time')
-                    : t('start_a_free_trial')}
+                  {t('start_a_free_trial')}
                 </StartFreeTrialButton>
               </p>
             )}

+ 1 - 6
services/web/frontend/js/features/review-panel-new/components/upgrade-track-changes-modal.tsx

@@ -5,7 +5,6 @@ import teaserVideo from '../images/teaser-track-changes.mp4'
 import teaserImage from '../images/teaser-track-changes.gif'
 import { startFreeTrial, upgradePlan } from '@/main/account-upgrade'
 import { memo } from 'react'
-import { useFeatureFlag } from '@/shared/context/split-test-context'
 import OLModal, {
   OLModalBody,
   OLModalFooter,
@@ -30,8 +29,6 @@ function UpgradeTrackChangesModal({
   const project = useProjectContext()
   const user = useUserContext()
 
-  const hasNewPaywallCta = useFeatureFlag('paywall-cta')
-
   return (
     <OLModal show={show} onHide={() => setShow(false)}>
       <OLModalHeader closeButton>
@@ -78,9 +75,7 @@ function UpgradeTrackChangesModal({
                   variant="primary"
                   onClick={() => startFreeTrial('track-changes')}
                 >
-                  {hasNewPaywallCta
-                    ? t('get_track_changes')
-                    : t('try_it_for_free')}
+                  {t('try_it_for_free')}
                 </OLButton>
               ) : (
                 <OLButton

+ 0 - 15
services/web/locales/en.json

@@ -804,26 +804,17 @@
   "generic_if_problem_continues_contact_us": "If the problem continues please contact us",
   "generic_linked_file_compile_error": "This project’s output files are not available because it failed to compile. Please open the project to see the compilation error details.",
   "generic_something_went_wrong": "Sorry, something went wrong",
-  "get_advanced_reference_search": "Get advanced reference search",
   "get_collaborative_benefits": "Get the collaborative benefits from __appName__, even if you prefer to work offline",
   "get_discounted_plan": "Get discounted plan",
-  "get_dropbox_sync": "Get Dropbox Sync",
   "get_error_assist": "Get Error Assist",
   "get_exclusive_access_to_labs": "Get exclusive access to early-stage experiments when you join Overleaf Labs. All we ask in return is your honest feedback to help us develop and improve.",
-  "get_full_project_history": "Get full project history",
-  "get_git_integration": "Get Git integration",
-  "get_github_sync": "Get GitHub Sync",
   "get_in_touch": "Get in touch",
   "get_in_touch_having_problems": "<a href=\"__link__\">Get in touch with support</a> if you’re having problems",
   "get_involved": "Get involved",
-  "get_more_compile_time": "Get more compile time",
   "get_most_subscription_by_checking_features": "Get the most out of your __appName__ subscription by checking out <0>__appName__’s features</0>.",
   "get_most_subscription_discover_premium_features": "Get the most from your __appName__ subscription. <0>Discover premium features</0>.",
-  "get_symbol_palette": "Get Symbol Palette",
   "get_the_best_overleaf_experience": "Get the best Overleaf experience",
-  "get_the_best_writing_experience": "Get the best writing experience",
   "get_the_most_out_headline": "Get the most out of __appName__ with features such as:",
-  "get_track_changes": "Get track changes",
   "git": "Git",
   "git_authentication_token": "Git authentication token",
   "git_authentication_token_create_modal_info_1": "This is your Git authentication token. You should enter this when prompted for a password.",
@@ -1305,7 +1296,6 @@
   "member_picker": "Select number of users for group plan",
   "members_management": "Members management",
   "mendeley": "Mendeley",
-  "mendeley_cta": "Get Mendeley integration",
   "mendeley_dynamic_sync_description": "With the Mendeley integration, you can import your references into __appName__. You can either import all your references at once or dynamically search your Mendeley library directly from __appName__.",
   "mendeley_groups_loading_error": "There was an error loading groups from Mendeley",
   "mendeley_groups_relink": "There was an error accessing your Mendeley data. This was likely caused by lack of permissions. Please re-link your account and try again.",
@@ -1394,7 +1384,6 @@
   "no_existing_password": "Please use the password reset form to set your password",
   "no_featured_templates": "No featured templates",
   "no_folder": "No folder",
-  "no_i_dont_need_these": "No, I don’t need these",
   "no_image_files_found": "No image files found",
   "no_libraries_selected": "No libraries selected",
   "no_members": "No members",
@@ -1513,7 +1502,6 @@
   "page_current": "Page __page__, Current Page",
   "page_not_found": "Page Not Found",
   "pagination_navigation": "Pagination Navigation",
-  "papers_cta": "Get Papers integration",
   "papers_dynamic_sync_description": "With the Papers integration, you can import your references into __appName__. You can either import all your references at once or dynamically search your Papers library directly from __appName__.",
   "papers_groups_loading_error": "There was an error loading libraries from Papers",
   "papers_groups_relink": "There was an error accessing your Papers data. This was likely caused by lack of permissions. Please re-link your account and try again.",
@@ -2582,7 +2570,6 @@
   "work_or_university_sso": "Work/university single sign-on",
   "work_with_non_overleaf_users": "Work with non Overleaf users",
   "work_with_other_github_users": "Work with other GitHub users",
-  "write_and_collaborate_faster_with_features_like": "Write and collaborate faster with features like:",
   "writefull": "Writefull",
   "writefull_loading_error_body": "Try refreshing the page. If this doesn’t work, try disabling any active browser extensions to check they aren’t blocking Writefull from loading.",
   "writefull_loading_error_title": "Writefull didn’t load correctly",
@@ -2597,7 +2584,6 @@
   "x_price_per_year": "__price__ per year",
   "year": "year",
   "yearly": "Yearly",
-  "yes_im_in": "Yes, I’m in",
   "yes_move_me_to_personal_plan": "Yes, move me to the Personal plan",
   "yes_that_is_correct": "Yes, that’s correct",
   "you": "You",
@@ -2711,7 +2697,6 @@
   "zoom_to": "Zoom to",
   "zotero": "Zotero",
   "zotero_and_mendeley_integrations": "<0>Zotero</0> and <0>Mendeley</0> integrations",
-  "zotero_cta": "Get Zotero integration",
   "zotero_dynamic_sync_description": "With the Zotero integration, you can import your references into __appName__. You can either import all your references at once or dynamically search your Zotero library directly from __appName__.",
   "zotero_groups_loading_error": "There was an error loading groups from Zotero",
   "zotero_groups_relink": "There was an error accessing your Zotero data. This was likely caused by lack of permissions. Please re-link your account and try again.",