mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 14:13:43 +01:00
Merge pull request #32281 from overleaf/mj-remove-enableNewEditor
[web] Remove enableNewEditor settings GitOrigin-RevId: cc33be59b8c2f5b0ba9e12a2fe9af9ccba7196e8
This commit is contained in:
committed by
Copybot
parent
84fa80c8e9
commit
b87053a932
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -25,8 +25,6 @@ export const defaultSettings: UserSettings = {
|
||||
lineHeight: 'normal',
|
||||
mathPreview: true,
|
||||
referencesSearchMode: 'advanced',
|
||||
enableNewEditor: true,
|
||||
enableNewEditorLegacy: true,
|
||||
breadcrumbs: true,
|
||||
darkModePdf: false,
|
||||
}
|
||||
|
||||
@@ -66,8 +66,6 @@ export const USER_EMAIL = 'testuser@example.com'
|
||||
|
||||
const defaultUserSettings = {
|
||||
...defaultSettings,
|
||||
enableNewEditor: false,
|
||||
enableNewEditorLegacy: false,
|
||||
referencesSearchMode: 'simple',
|
||||
} satisfies UserSettings
|
||||
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -18,8 +18,6 @@ export type UserSettings = {
|
||||
lineHeight: LineHeight
|
||||
mathPreview: boolean
|
||||
referencesSearchMode: 'advanced' | 'simple'
|
||||
enableNewEditor: boolean
|
||||
enableNewEditorLegacy: boolean
|
||||
breadcrumbs: boolean
|
||||
darkModePdf: boolean
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user