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

Merge pull request #32281 from overleaf/mj-remove-enableNewEditor

[web] Remove enableNewEditor settings

GitOrigin-RevId: cc33be59b8c2f5b0ba9e12a2fe9af9ccba7196e8
Mathias Jakobsen 6 месяцев назад
Родитель
Сommit
b87053a932

+ 0 - 42
services/web/app/src/Features/Project/UserSettingsHelper.mjs

@@ -1,35 +1,5 @@
 import SplitTestHandler from '../SplitTests/SplitTestHandler.mjs'
 
-// Copied from services/web/frontend/js/features/ide-redesign/utils/new-editor-utils.ts
-const SPLIT_TEST_USER_CUTOFF_DATE = new Date(Date.UTC(2025, 8, 23, 13, 0, 0)) // 2pm British Summer Time on September 23, 2025
-const NEW_USER_CUTOFF_DATE = new Date(Date.UTC(2025, 10, 12, 12, 0, 0)) // 12pm GMT on November 12, 2025
-
-async function getEnableNewEditorLegacyDefault(req, res, user) {
-  if (req.query['existing-user-override'] === 'true') {
-    return false
-  }
-
-  if (req.query['skip-new-user-check'] === 'true') {
-    return true
-  }
-
-  if (user.signUpDate >= NEW_USER_CUTOFF_DATE) {
-    return true
-  }
-
-  if (user.signUpDate >= SPLIT_TEST_USER_CUTOFF_DATE) {
-    const assignment = await SplitTestHandler.promises.getAssignment(
-      req,
-      res,
-      'editor-redesign-new-users'
-    )
-
-    return assignment.variant !== 'default'
-  }
-
-  return false
-}
-
 const SYSTEM_THEME_USER_CUTOFF_DATE = new Date(Date.UTC(2026, 2, 2, 12, 0, 0)) // 12pm GMT on March 2, 2026
 
 async function getOverallTheme(req, res, user) {
@@ -58,16 +28,6 @@ async function getOverallTheme(req, res, user) {
 }
 
 async function buildUserSettings(req, res, user) {
-  const defaultLegacyEnableNewEditor = await getEnableNewEditorLegacyDefault(
-    req,
-    res,
-    user
-  )
-
-  const enableNewEditorStageFour = user.ace.enableNewEditorStageFour ?? true
-  const enableNewEditorLegacy =
-    user.ace.enableNewEditor ?? defaultLegacyEnableNewEditor
-
   return {
     mode: user.ace.mode,
     editorTheme: user.ace.theme,
@@ -84,8 +44,6 @@ async function buildUserSettings(req, res, user) {
     mathPreview: user.ace.mathPreview,
     breadcrumbs: user.ace.breadcrumbs,
     referencesSearchMode: user.ace.referencesSearchMode,
-    enableNewEditor: enableNewEditorStageFour,
-    enableNewEditorLegacy,
     darkModePdf: user.ace.darkModePdf ?? false,
   }
 }

+ 0 - 3
services/web/app/src/Features/User/UserController.mjs

@@ -410,9 +410,6 @@ async function updateUserSettings(req, res, next) {
     const mode = body.referencesSearchMode === 'simple' ? 'simple' : 'advanced'
     user.ace.referencesSearchMode = mode
   }
-  if (body.enableNewEditor != null) {
-    user.ace.enableNewEditorStageFour = Boolean(body.enableNewEditor)
-  }
   if (body.darkModePdf != null) {
     user.ace.darkModePdf = Boolean(body.darkModePdf)
   }

+ 0 - 5
services/web/app/src/models/User.mjs

@@ -93,11 +93,6 @@ export const UserSchema = new Schema(
       mathPreview: { type: Boolean, default: true },
       breadcrumbs: { type: Boolean, default: true },
       referencesSearchMode: { type: String, default: 'advanced' }, // 'advanced' or 'simple'
-      // enableNewEditor is being phased out in favor of enableNewEditorStageFour
-      // when moving the new editor to opt out (stage 4). However, we need to keep the
-      // old field for determining whether to show promotional material to users.
-      enableNewEditor: { type: Boolean },
-      enableNewEditorStageFour: { type: Boolean },
       darkModePdf: { type: Boolean, default: false },
     },
     features: {

+ 0 - 2
services/web/frontend/js/features/source-editor/hooks/use-codemirror-scope.ts

@@ -89,7 +89,6 @@ function useCodeMirrorScope(view: EditorView) {
     syntaxValidation,
     mathPreview,
     referencesSearchMode,
-    enableNewEditor,
   } = userSettings
   const activeOverallTheme = useActiveOverallTheme()
   const editorTheme = useActiveEditorTheme()
@@ -160,7 +159,6 @@ function useCodeMirrorScope(view: EditorView) {
     syntaxValidation,
     mathPreview,
     referencesSearchMode,
-    enableNewEditor,
   })
 
   const currentDocRef = useRef({

+ 0 - 2
services/web/frontend/js/shared/context/user-settings-context.tsx

@@ -25,8 +25,6 @@ export const defaultSettings: UserSettings = {
   lineHeight: 'normal',
   mathPreview: true,
   referencesSearchMode: 'advanced',
-  enableNewEditor: true,
-  enableNewEditorLegacy: true,
   breadcrumbs: true,
   darkModePdf: false,
 }

+ 0 - 2
services/web/test/frontend/helpers/editor-providers.tsx

@@ -66,8 +66,6 @@ export const USER_EMAIL = 'testuser@example.com'
 
 const defaultUserSettings = {
   ...defaultSettings,
-  enableNewEditor: false,
-  enableNewEditorLegacy: false,
   referencesSearchMode: 'simple',
 } satisfies UserSettings
 

+ 0 - 33
services/web/test/unit/src/User/UserController.test.mjs

@@ -532,39 +532,6 @@ describe('UserController', function () {
       })
     })
 
-    it('should set enableNewEditorStageFour to true', function (ctx) {
-      return new Promise(resolve => {
-        ctx.req.body = { enableNewEditor: true }
-        ctx.res.sendStatus = code => {
-          ctx.user.ace.enableNewEditorStageFour.should.equal(true)
-          resolve()
-        }
-        ctx.UserController.updateUserSettings(ctx.req, ctx.res)
-      })
-    })
-
-    it('should set enableNewEditorStageFour to false', function (ctx) {
-      return new Promise(resolve => {
-        ctx.req.body = { enableNewEditor: false }
-        ctx.res.sendStatus = code => {
-          ctx.user.ace.enableNewEditorStageFour.should.equal(false)
-          resolve()
-        }
-        ctx.UserController.updateUserSettings(ctx.req, ctx.res)
-      })
-    })
-
-    it('should keep enableNewEditorStageFour a boolean', function (ctx) {
-      return new Promise(resolve => {
-        ctx.req.body = { enableNewEditor: 'foobar' }
-        ctx.res.sendStatus = code => {
-          ctx.user.ace.enableNewEditorStageFour.should.equal(true)
-          resolve()
-        }
-        ctx.UserController.updateUserSettings(ctx.req, ctx.res)
-      })
-    })
-
     it('should set darkModePdf to true', function (ctx) {
       return new Promise(resolve => {
         ctx.req.body = { darkModePdf: true }

+ 0 - 2
services/web/types/user-settings.ts

@@ -18,8 +18,6 @@ export type UserSettings = {
   lineHeight: LineHeight
   mathPreview: boolean
   referencesSearchMode: 'advanced' | 'simple'
-  enableNewEditor: boolean
-  enableNewEditorLegacy: boolean
   breadcrumbs: boolean
   darkModePdf: boolean
 }