Просмотр исходного кода

Merge pull request #23285 from overleaf/ds-compile-timeout-paywall-split-test

Compile timeout paywall - Setting up the split test

GitOrigin-RevId: c91c25c167daffdcd7b86fddf33e1867f90d0f4a
Davinder Singh 1 год назад
Родитель
Сommit
423c2ba7e7

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

@@ -355,6 +355,7 @@ const _ProjectController = {
       'reviewer-role',
       'papers-integration',
       'editor-redesign',
+      'paywall-change-compile-timeout',
     ].filter(Boolean)
 
     const getUserValues = async userId =>
@@ -845,6 +846,9 @@ const _ProjectController = {
         isReviewerRoleEnabled:
           reviewerRoleAssignment?.variant === 'enabled' ||
           Object.keys(project.reviewer_refs || {}).length > 0,
+        isPaywallChangeCompileTimeoutEnabled:
+          splitTestAssignments['paywall-change-compile-timeout']?.variant ===
+          'enabled',
       })
       timer.done()
     } catch (err) {

+ 1 - 0
services/web/app/views/project/editor/_meta.pug

@@ -42,6 +42,7 @@ meta(name="ol-ro-mirror-on-client-no-local-storage" data-type="boolean" content=
 meta(name="ol-isSaas" data-type="boolean" content=isSaas)
 meta(name="ol-shouldLoadHotjar" data-type="boolean" content=shouldLoadHotjar)
 meta(name="ol-isReviewerRoleEnabled" data-type="boolean" content=isReviewerRoleEnabled)
+meta(name="ol-isPaywallChangeCompileTimeoutEnabled" data-type="boolean" content=isPaywallChangeCompileTimeoutEnabled)
 
 // translations for the loading page, before i18n has loaded in the client
 meta(name="ol-loadingText", data-type="string" content=translate("loading"))

+ 11 - 1
services/web/frontend/js/features/pdf-preview/components/pdf-logs-viewer.jsx

@@ -15,6 +15,8 @@ import { useDetachCompileContext as useCompileContext } from '../../../shared/co
 import PdfLogEntry from './pdf-log-entry'
 import { usePdfPreviewContext } from '@/features/pdf-preview/components/pdf-preview-provider'
 import PropTypes from 'prop-types'
+import TimeoutUpgradePaywallPrompt from './timeout-upgrade-paywall-prompt'
+import getMeta from '@/utils/meta'
 
 function PdfLogsViewer({ alwaysVisible = false }) {
   const {
@@ -32,6 +34,10 @@ function PdfLogsViewer({ alwaysVisible = false }) {
 
   const { t } = useTranslation()
 
+  const isPaywallChangeCompileTimeoutEnabled = getMeta(
+    'ol-isPaywallChangeCompileTimeoutEnabled'
+  )
+
   return (
     <div
       className={classnames('logs-pane', {
@@ -46,7 +52,11 @@ function PdfLogsViewer({ alwaysVisible = false }) {
         {loadingError && <PdfPreviewError error="pdf-viewer-loading-error" />}
 
         {hasShortCompileTimeout && error === 'timedout' ? (
-          <TimeoutUpgradePromptNew />
+          isPaywallChangeCompileTimeoutEnabled ? (
+            <TimeoutUpgradePaywallPrompt />
+          ) : (
+            <TimeoutUpgradePromptNew />
+          )
         ) : (
           <>{error && <PdfPreviewError error={error} />}</>
         )}

+ 5 - 0
services/web/frontend/js/features/pdf-preview/components/timeout-upgrade-paywall-prompt.tsx

@@ -0,0 +1,5 @@
+function TimeoutUpgradePaywallPrompt() {
+  return <div>Hello world from new paywall component</div>
+}
+
+export default TimeoutUpgradePaywallPrompt