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

Merge pull request #27684 from overleaf/dp-teardown-labs

Cleanup editor-redesign labs experiment

GitOrigin-RevId: 7697736f3bada8d205bab98c03ba96a99734311a
David 1 год назад
Родитель
Сommit
86655a708a

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

@@ -48,7 +48,6 @@
   "access_denied": "",
   "access_denied": "",
   "access_edit_your_projects": "",
   "access_edit_your_projects": "",
   "access_levels_changed": "",
   "access_levels_changed": "",
-  "access_your_favourite_features_faster_with_our_new_streamlined_editor": "",
   "account_billed_manually": "",
   "account_billed_manually": "",
   "account_has_been_link_to_institution_account": "",
   "account_has_been_link_to_institution_account": "",
   "account_has_past_due_invoice_change_plan_warning": "",
   "account_has_past_due_invoice_change_plan_warning": "",
@@ -448,7 +447,6 @@
   "done": "",
   "done": "",
   "dont_forget_you_currently_have": "",
   "dont_forget_you_currently_have": "",
   "dont_reload_or_close_this_tab": "",
   "dont_reload_or_close_this_tab": "",
-  "double_clicking_on_the_pdf_shows": "",
   "download": "",
   "download": "",
   "download_all": "",
   "download_all": "",
   "download_as_pdf": "",
   "download_as_pdf": "",
@@ -738,7 +736,6 @@
   "help_editor_settings": "",
   "help_editor_settings": "",
   "help_improve_overleaf_fill_out_this_survey": "",
   "help_improve_overleaf_fill_out_this_survey": "",
   "help_improve_screen_reader_fill_out_this_survey": "",
   "help_improve_screen_reader_fill_out_this_survey": "",
-  "help_shape_the_future_of_overleaf": "",
   "hide": "",
   "hide": "",
   "hide_configuration": "",
   "hide_configuration": "",
   "hide_deleted_user": "",
   "hide_deleted_user": "",
@@ -892,7 +889,6 @@
   "it_looks_like_your_payment_details_are_missing_please_update_your_billing_information": "",
   "it_looks_like_your_payment_details_are_missing_please_update_your_billing_information": "",
   "italics": "",
   "italics": "",
   "join": "",
   "join": "",
-  "join_beta": "",
   "join_beta_program": "",
   "join_beta_program": "",
   "join_now": "",
   "join_now": "",
   "join_overleaf_labs": "",
   "join_overleaf_labs": "",
@@ -911,7 +907,6 @@
   "knowledge_base": "",
   "knowledge_base": "",
   "labels_help_you_to_easily_reference_your_figures": "",
   "labels_help_you_to_easily_reference_your_figures": "",
   "labels_help_you_to_reference_your_tables": "",
   "labels_help_you_to_reference_your_tables": "",
-  "labs": "",
   "language": "",
   "language": "",
   "language_suggestions": "",
   "language_suggestions": "",
   "large_or_high-resolution_images_taking_too_long": "",
   "large_or_high-resolution_images_taking_too_long": "",
@@ -927,7 +922,6 @@
   "last_used": "",
   "last_used": "",
   "latam_discount_modal_info": "",
   "latam_discount_modal_info": "",
   "latam_discount_modal_title": "",
   "latam_discount_modal_title": "",
-  "latest_updates": "",
   "latex_in_thirty_minutes": "",
   "latex_in_thirty_minutes": "",
   "latex_places_figures_according_to_a_special_algorithm": "",
   "latex_places_figures_according_to_a_special_algorithm": "",
   "latex_places_tables_according_to_a_special_algorithm": "",
   "latex_places_tables_according_to_a_special_algorithm": "",
@@ -1094,14 +1088,12 @@
   "neither_agree_nor_disagree": "",
   "neither_agree_nor_disagree": "",
   "new_compile_domain_notice": "",
   "new_compile_domain_notice": "",
   "new_create_tables_and_equations": "",
   "new_create_tables_and_equations": "",
-  "new_error_logs_panel": "",
   "new_file": "",
   "new_file": "",
   "new_folder": "",
   "new_folder": "",
   "new_look_and_feel": "",
   "new_look_and_feel": "",
   "new_look_and_placement_of_the_settings": "",
   "new_look_and_placement_of_the_settings": "",
   "new_name": "",
   "new_name": "",
   "new_navigation_introducing_left_hand_side_rail_and_top_menus": "",
   "new_navigation_introducing_left_hand_side_rail_and_top_menus": "",
-  "new_overleaf_editor": "",
   "new_password": "",
   "new_password": "",
   "new_project": "",
   "new_project": "",
   "new_project_name": "",
   "new_project_name": "",
@@ -1533,7 +1525,6 @@
   "search_whole_word": "",
   "search_whole_word": "",
   "search_within_selection": "",
   "search_within_selection": "",
   "searched_path_for_lines_containing": "",
   "searched_path_for_lines_containing": "",
-  "searching_all_project_files_is_now_available": "",
   "security": "",
   "security": "",
   "see_suggestions_from_collaborators": "",
   "see_suggestions_from_collaborators": "",
   "see_your_current_location_in_the_project": "",
   "see_your_current_location_in_the_project": "",
@@ -1782,14 +1773,12 @@
   "thank_you": "",
   "thank_you": "",
   "thank_you_exclamation": "",
   "thank_you_exclamation": "",
   "thank_you_for_your_feedback": "",
   "thank_you_for_your_feedback": "",
-  "thanks_for_being_part_of_this_labs_experiment_your_feedback_will_help_us_make_the_new_editor_the_best_yet": "",
   "thanks_for_confirming_your_email_address": "",
   "thanks_for_confirming_your_email_address": "",
   "thanks_for_getting_in_touch": "",
   "thanks_for_getting_in_touch": "",
   "thanks_for_subscribing": "",
   "thanks_for_subscribing": "",
   "thanks_for_subscribing_to_plan_with_add_on": "",
   "thanks_for_subscribing_to_plan_with_add_on": "",
   "thanks_for_subscribing_to_the_add_on": "",
   "thanks_for_subscribing_to_the_add_on": "",
   "thanks_for_subscribing_you_help_sl": "",
   "thanks_for_subscribing_you_help_sl": "",
-  "thanks_for_trying_the_new_editor": "",
   "thanks_settings_updated": "",
   "thanks_settings_updated": "",
   "the_add_on_will_remain_active_until": "",
   "the_add_on_will_remain_active_until": "",
   "the_code_editor_color_scheme": "",
   "the_code_editor_color_scheme": "",
@@ -1798,9 +1787,7 @@
   "the_following_files_and_folders_already_exist_in_this_project": "",
   "the_following_files_and_folders_already_exist_in_this_project": "",
   "the_following_folder_already_exists_in_this_project": "",
   "the_following_folder_already_exists_in_this_project": "",
   "the_following_folder_already_exists_in_this_project_plural": "",
   "the_following_folder_already_exists_in_this_project_plural": "",
-  "the_labs_experiment_has_now_finished": "",
   "the_latex_engine_used_for_compiling": "",
   "the_latex_engine_used_for_compiling": "",
-  "the_new_overleaf_editor": "",
   "the_new_overleaf_editor_try_now_in_beta": "",
   "the_new_overleaf_editor_try_now_in_beta": "",
   "the_next_payment_will_be_collected_on": "",
   "the_next_payment_will_be_collected_on": "",
   "the_original_text_has_changed": "",
   "the_original_text_has_changed": "",
@@ -1831,7 +1818,6 @@
   "this_field_is_required": "",
   "this_field_is_required": "",
   "this_grants_access_to_features_2": "",
   "this_grants_access_to_features_2": "",
   "this_is_a_beta_release_for_the_new_overleaf_editor": "",
   "this_is_a_beta_release_for_the_new_overleaf_editor": "",
-  "this_is_a_labs_experiment_for_the_new_overleaf_editor_some_features_are_still_in_progress": "",
   "this_is_a_new_feature": "",
   "this_is_a_new_feature": "",
   "this_is_the_file_that_references_pulled_from_your_reference_manager_will_be_added_to": "",
   "this_is_the_file_that_references_pulled_from_your_reference_manager_will_be_added_to": "",
   "this_project_already_has_maximum_collaborators": "",
   "this_project_already_has_maximum_collaborators": "",
@@ -2114,7 +2100,6 @@
   "well_be_here_when_youre_ready": "",
   "well_be_here_when_youre_ready": "",
   "were_making_some_changes_to_project_sharing_this_means_you_will_be_visible": "",
   "were_making_some_changes_to_project_sharing_this_means_you_will_be_visible": "",
   "were_performing_maintenance": "",
   "were_performing_maintenance": "",
-  "were_redesigning_our_editor_to_make_it_easier_to_use": "",
   "were_reducing_compile_timeout": "",
   "were_reducing_compile_timeout": "",
   "weve_redesigned_our_editor_to_make_it_easier_to_use_and_future_ready": "",
   "weve_redesigned_our_editor_to_make_it_easier_to_use_and_future_ready": "",
   "what_did_you_find_most_helpful": "",
   "what_did_you_find_most_helpful": "",
@@ -2123,7 +2108,6 @@
   "what_happens_when_sso_is_enabled": "",
   "what_happens_when_sso_is_enabled": "",
   "what_should_we_call_you": "",
   "what_should_we_call_you": "",
   "whats_different": "",
   "whats_different": "",
-  "whats_different_in_the_new_editor": "",
   "when_you_tick_the_include_caption_box": "",
   "when_you_tick_the_include_caption_box": "",
   "why_might_this_happen": "",
   "why_might_this_happen": "",
   "why_not_pause_instead": "",
   "why_not_pause_instead": "",
@@ -2166,7 +2150,6 @@
   "you_are_using_your_organization_email_x_would_like_you_to_take_action": "",
   "you_are_using_your_organization_email_x_would_like_you_to_take_action": "",
   "you_can_also_choose_to_view_anonymously_or_leave_the_project": "",
   "you_can_also_choose_to_view_anonymously_or_leave_the_project": "",
   "you_can_buy_this_plan_but_not_as_a_trial": "",
   "you_can_buy_this_plan_but_not_as_a_trial": "",
-  "you_can_leave_the_experiment_from_your_account_settings_at_any_time": "",
   "you_can_manage_your_reference_manager_integrations_from_your_account_settings_page": "",
   "you_can_manage_your_reference_manager_integrations_from_your_account_settings_page": "",
   "you_can_now_enable_sso": "",
   "you_can_now_enable_sso": "",
   "you_can_now_log_in_sso": "",
   "you_can_now_log_in_sso": "",
@@ -2240,7 +2223,6 @@
   "youre_about_to_enable_single_sign_on_sso_only": "",
   "youre_about_to_enable_single_sign_on_sso_only": "",
   "youre_adding_x_licenses_to_your_plan_giving_you_a_total_of_y_licenses": "",
   "youre_adding_x_licenses_to_your_plan_giving_you_a_total_of_y_licenses": "",
   "youre_already_setup_for_sso": "",
   "youre_already_setup_for_sso": "",
-  "youre_helping_us_shape_the_future_of_overleaf": "",
   "youre_joining": "",
   "youre_joining": "",
   "youre_on_free_trial_which_ends_on": "",
   "youre_on_free_trial_which_ends_on": "",
   "youre_signed_in_as_logout": "",
   "youre_signed_in_as_logout": "",

+ 0 - 6
services/web/frontend/js/features/editor-navigation-toolbar/try-new-editor-button.tsx

@@ -1,14 +1,11 @@
 import { useCallback } from 'react'
 import { useCallback } from 'react'
 import OLButton from '../../shared/components/ol/ol-button'
 import OLButton from '../../shared/components/ol/ol-button'
 import { useIdeRedesignSwitcherContext } from '../ide-react/context/ide-redesign-switcher-context'
 import { useIdeRedesignSwitcherContext } from '../ide-react/context/ide-redesign-switcher-context'
-import MaterialIcon from '@/shared/components/material-icon'
 import { useTranslation } from 'react-i18next'
 import { useTranslation } from 'react-i18next'
-import { isNewEditorInBeta } from '../ide-redesign/utils/new-editor-utils'
 
 
 const TryNewEditorButton = () => {
 const TryNewEditorButton = () => {
   const { t } = useTranslation()
   const { t } = useTranslation()
   const { setShowSwitcherModal } = useIdeRedesignSwitcherContext()
   const { setShowSwitcherModal } = useIdeRedesignSwitcherContext()
-  const newEditorBeta = isNewEditorInBeta()
 
 
   const onClick = useCallback(() => {
   const onClick = useCallback(() => {
     setShowSwitcherModal(true)
     setShowSwitcherModal(true)
@@ -19,9 +16,6 @@ const TryNewEditorButton = () => {
         className="toolbar-experiment-button"
         className="toolbar-experiment-button"
         onClick={onClick}
         onClick={onClick}
         size="sm"
         size="sm"
-        leadingIcon={
-          !newEditorBeta && <MaterialIcon type="experiment" unfilled />
-        }
         variant="secondary"
         variant="secondary"
       >
       >
         {t('try_the_new_editor')}
         {t('try_the_new_editor')}

+ 0 - 2
services/web/frontend/js/features/ide-react/components/layout/main-layout.tsx

@@ -16,7 +16,6 @@ import HistoryContainer from '@/features/ide-react/components/history-container'
 import getMeta from '@/utils/meta'
 import getMeta from '@/utils/meta'
 import { useEditorContext } from '@/shared/context/editor-context'
 import { useEditorContext } from '@/shared/context/editor-context'
 import importOverleafModules from '../../../../../macros/import-overleaf-module.macro'
 import importOverleafModules from '../../../../../macros/import-overleaf-module.macro'
-import LabsUserBetaPromo from '@/features/ide-redesign/components/labs-user-beta-promo'
 
 
 const mainEditorLayoutModalsModules: Array<{
 const mainEditorLayoutModalsModules: Array<{
   import: { default: ElementType }
   import: { default: ElementType }
@@ -100,7 +99,6 @@ export const MainLayout: FC = () => {
             <PanelGroup autoSaveId="ide-inner-layout" direction="horizontal">
             <PanelGroup autoSaveId="ide-inner-layout" direction="horizontal">
               <Panel className="ide-react-panel" id="panel-main" order={1}>
               <Panel className="ide-react-panel" id="panel-main" order={1}>
                 <HistoryContainer />
                 <HistoryContainer />
-                <LabsUserBetaPromo />
                 <EditorAndPdf />
                 <EditorAndPdf />
               </Panel>
               </Panel>
 
 

+ 3 - 13
services/web/frontend/js/features/ide-react/components/modals/modals.tsx

@@ -2,29 +2,19 @@ import { memo } from 'react'
 import ForceDisconnected from '@/features/ide-react/components/modals/force-disconnected'
 import ForceDisconnected from '@/features/ide-react/components/modals/force-disconnected'
 import { UnsavedDocs } from '@/features/ide-react/components/unsaved-docs/unsaved-docs'
 import { UnsavedDocs } from '@/features/ide-react/components/unsaved-docs/unsaved-docs'
 import SystemMessages from '@/shared/components/system-messages'
 import SystemMessages from '@/shared/components/system-messages'
-import { IdeRedesignSwitcherModal as IdeRedesignSwitcherModalLabs } from '@/features/ide-redesign/components/switcher-modal/modal'
 import {
 import {
-  IdeRedesignSwitcherModal as IdeRedesignSwitcherModalBeta,
+  IdeRedesignSwitcherModal,
   IdeRedesignIntroModal,
   IdeRedesignIntroModal,
 } from '@/features/ide-redesign/components/switcher-modal/beta-modal'
 } from '@/features/ide-redesign/components/switcher-modal/beta-modal'
-import { isNewEditorInBeta } from '@/features/ide-redesign/utils/new-editor-utils'
 
 
 export const Modals = memo(() => {
 export const Modals = memo(() => {
-  const newEditorBeta = isNewEditorInBeta()
-
   return (
   return (
     <>
     <>
       <ForceDisconnected />
       <ForceDisconnected />
       <UnsavedDocs />
       <UnsavedDocs />
       <SystemMessages />
       <SystemMessages />
-      {newEditorBeta ? (
-        <>
-          <IdeRedesignIntroModal />
-          <IdeRedesignSwitcherModalBeta />
-        </>
-      ) : (
-        <IdeRedesignSwitcherModalLabs />
-      )}
+      <IdeRedesignIntroModal />
+      <IdeRedesignSwitcherModal />
     </>
     </>
   )
   )
 })
 })

+ 0 - 76
services/web/frontend/js/features/ide-redesign/components/labs-user-beta-promo.tsx

@@ -1,76 +0,0 @@
-import OLButton from '@/shared/components/ol/ol-button'
-import MaterialIcon from '@/shared/components/material-icon'
-import Notification from '@/shared/components/notification'
-import { useEditorContext } from '@/shared/context/editor-context'
-import useTutorial from '@/shared/hooks/promotions/use-tutorial'
-import { useEffect } from 'react'
-import { isNewEditorInBeta } from '../utils/new-editor-utils'
-import { isInExperiment } from '@/utils/labs-utils'
-import { useUserContext } from '@/shared/context/user-context'
-import { useTranslation } from 'react-i18next'
-
-const TUTORIAL_KEY = 'ide-redesign-labs-user-beta-promo'
-
-export default function LabsUserBetaPromoWrapper() {
-  const user = useUserContext()
-
-  // Show beta promo to labs users who are not in beta
-  // when the redesign switches to beta
-  if (
-    isNewEditorInBeta() &&
-    isInExperiment('editor-redesign') &&
-    !user.betaProgram
-  ) {
-    return <LabsUserBetaPromo />
-  }
-}
-
-const LabsUserBetaPromo = () => {
-  const { inactiveTutorials } = useEditorContext()
-  const { showPopup, tryShowingPopup, dismissTutorial } = useTutorial(
-    TUTORIAL_KEY,
-    { name: TUTORIAL_KEY }
-  )
-
-  useEffect(() => {
-    if (!inactiveTutorials.includes(TUTORIAL_KEY)) {
-      tryShowingPopup()
-    }
-  }, [tryShowingPopup, inactiveTutorials])
-
-  if (!showPopup) {
-    return null
-  }
-
-  return (
-    <Notification
-      className="ide-redesign-labs-user-beta-promo"
-      customIcon={<MaterialIcon type="experiment" unfilled />}
-      type="success"
-      isDismissible
-      content={<NotificationContent />}
-      onDismiss={dismissTutorial}
-    />
-  )
-}
-
-const NotificationContent = () => {
-  const { t } = useTranslation()
-  return (
-    <>
-      <div className="ide-redesign-labs-user-beta-promo-title">
-        {t('thanks_for_trying_the_new_editor')}
-      </div>
-      <div>{t('the_labs_experiment_has_now_finished')}</div>
-      <OLButton
-        variant="secondary"
-        className="ide-redesign-labs-user-beta-promo-button"
-        href="/beta/participate"
-        target="_blank"
-        rel="noreferrer noopener"
-      >
-        {t('join_beta')}
-      </OLButton>
-    </>
-  )
-}

+ 0 - 32
services/web/frontend/js/features/ide-redesign/components/labs-widget.tsx

@@ -1,32 +0,0 @@
-import { useState } from 'react'
-import LabsExperimentWidget from '../../../shared/components/labs/labs-experiments-widget'
-import { isInExperiment } from '@/utils/labs-utils'
-import { useTranslation } from 'react-i18next'
-import labsIcon from '../images/labs-icon.svg'
-
-const EditorRedesignLabsWidget = ({
-  labsProgram,
-  setErrorMessage,
-}: {
-  labsProgram: boolean
-  setErrorMessage: (err: string) => void
-}) => {
-  const { t } = useTranslation()
-  const [optedIn, setOptedIn] = useState(isInExperiment('editor-redesign'))
-  return (
-    <LabsExperimentWidget
-      description={t(
-        'access_your_favourite_features_faster_with_our_new_streamlined_editor'
-      )}
-      experimentName="editor-redesign"
-      logo={<img src={labsIcon} alt="" aria-hidden="true" />}
-      labsEnabled={labsProgram}
-      setErrorMessage={setErrorMessage}
-      optedIn={optedIn}
-      setOptedIn={setOptedIn}
-      title={t('new_overleaf_editor')}
-    />
-  )
-}
-
-export default EditorRedesignLabsWidget

+ 0 - 201
services/web/frontend/js/features/ide-redesign/components/switcher-modal/modal.tsx

@@ -1,201 +0,0 @@
-import { useIdeRedesignSwitcherContext } from '@/features/ide-react/context/ide-redesign-switcher-context'
-import OLButton from '@/shared/components/ol/ol-button'
-import OLModal, {
-  OLModalBody,
-  OLModalFooter,
-  OLModalHeader,
-  OLModalTitle,
-} from '@/shared/components/ol/ol-modal'
-import { FC, useCallback } from 'react'
-import {
-  canUseNewEditor,
-  useIsNewEditorEnabled,
-} from '../../utils/new-editor-utils'
-import Notification from '@/shared/components/notification'
-import { useSwitchEnableNewEditorState } from '../../hooks/use-switch-enable-new-editor-state'
-import { Trans, useTranslation } from 'react-i18next'
-import { useEditorAnalytics } from '@/shared/hooks/use-editor-analytics'
-import { useFeatureFlag } from '@/shared/context/split-test-context'
-import { useSurveyUrl } from '../../hooks/use-survey-url'
-
-export const IdeRedesignSwitcherModal = () => {
-  const { t } = useTranslation()
-  const { showSwitcherModal, setShowSwitcherModal } =
-    useIdeRedesignSwitcherContext()
-  const onHide = useCallback(
-    () => setShowSwitcherModal(false),
-    [setShowSwitcherModal]
-  )
-  const { loading, error, setEditorRedesignStatus } =
-    useSwitchEnableNewEditorState()
-  const enabled = useIsNewEditorEnabled()
-  const hasAccess = canUseNewEditor()
-  if (!hasAccess) {
-    return null
-  }
-
-  const Content = enabled
-    ? SwitcherModalContentEnabled
-    : SwitcherModalContentDisabled
-
-  return (
-    <OLModal
-      show={showSwitcherModal}
-      onHide={onHide}
-      className="ide-redesign-switcher-modal"
-    >
-      <OLModalHeader closeButton>
-        <OLModalTitle>{t('the_new_overleaf_editor')}</OLModalTitle>
-      </OLModalHeader>
-      {error && <Notification type="error" content={error} isDismissible />}
-      <Content
-        setEditorRedesignStatus={setEditorRedesignStatus}
-        hide={onHide}
-        loading={loading}
-      />
-    </OLModal>
-  )
-}
-
-type ModalContentProps = {
-  setEditorRedesignStatus: (enabled: boolean) => Promise<void>
-  hide: () => void
-  loading: boolean
-}
-
-const SwitcherModalContentEnabled: FC<ModalContentProps> = ({
-  setEditorRedesignStatus,
-  hide,
-  loading,
-}) => {
-  const { t } = useTranslation()
-  const { sendEvent } = useEditorAnalytics()
-  const disable = useCallback(() => {
-    sendEvent('editor-redesign-toggle', {
-      action: 'disable',
-      location: 'modal',
-    })
-    setEditorRedesignStatus(false)
-      .then(hide)
-      .catch(() => {
-        // do nothing, we're already showing the error
-      })
-  }, [setEditorRedesignStatus, hide, sendEvent])
-
-  const surveyURL = useSurveyUrl()
-
-  return (
-    <>
-      <OLModalBody>
-        <h3>{t('youre_helping_us_shape_the_future_of_overleaf')}</h3>
-        <p>
-          {t(
-            'thanks_for_being_part_of_this_labs_experiment_your_feedback_will_help_us_make_the_new_editor_the_best_yet'
-          )}
-        </p>
-        <SwitcherWhatsNew />
-        <LeavingNote />
-      </OLModalBody>
-      <OLModalFooter>
-        <OLButton
-          onClick={disable}
-          variant="secondary"
-          className="me-auto"
-          disabled={loading}
-        >
-          {t('switch_to_old_editor')}
-        </OLButton>
-        <OLButton onClick={hide} variant="secondary">
-          {t('cancel')}
-        </OLButton>
-        <OLButton
-          href={surveyURL}
-          target="_blank"
-          rel="noopener noreferrer"
-          variant="primary"
-        >
-          {t('give_feedback')}
-        </OLButton>
-      </OLModalFooter>
-    </>
-  )
-}
-
-const SwitcherModalContentDisabled: FC<ModalContentProps> = ({
-  setEditorRedesignStatus,
-  hide,
-  loading,
-}) => {
-  const { t } = useTranslation()
-  const { sendEvent } = useEditorAnalytics()
-  const enable = useCallback(() => {
-    sendEvent('editor-redesign-toggle', {
-      action: 'enable',
-      location: 'modal',
-    })
-    setEditorRedesignStatus(true)
-      .then(hide)
-      .catch(() => {
-        // do nothing, we're already showing the error
-      })
-  }, [setEditorRedesignStatus, hide, sendEvent])
-  return (
-    <>
-      <OLModalBody>
-        <h3>{t('help_shape_the_future_of_overleaf')}</h3>
-        <p>{t('were_redesigning_our_editor_to_make_it_easier_to_use')}</p>
-        <SwitcherWhatsNew />
-        <LeavingNote />
-      </OLModalBody>
-      <OLModalFooter>
-        <OLButton onClick={hide} variant="secondary">
-          {t('cancel')}
-        </OLButton>
-        <OLButton onClick={enable} variant="primary" disabled={loading}>
-          {t('switch_to_new_editor')}
-        </OLButton>
-      </OLModalFooter>
-    </>
-  )
-}
-
-const SwitcherWhatsNew = () => {
-  const { t } = useTranslation()
-  const newErrorlogs = useFeatureFlag('new-editor-error-logs-redesign')
-
-  return (
-    <div className="ide-redesign-switcher-modal-whats-new">
-      <h4>{t('latest_updates')}</h4>
-      <ul>
-        {newErrorlogs && <li>{t('new_error_logs_panel')}</li>}
-        <li>{t('searching_all_project_files_is_now_available')}</li>
-        <li>{t('double_clicking_on_the_pdf_shows')}</li>
-      </ul>
-      <hr />
-      <h4>{t('whats_different_in_the_new_editor')}</h4>
-      <ul>
-        <li>{t('new_look_and_feel')}</li>
-        <li>
-          {t('new_navigation_introducing_left_hand_side_rail_and_top_menus')}
-        </li>
-        <li>{t('new_look_and_placement_of_the_settings')}</li>
-        <li>{t('improved_dark_mode')}</li>
-        <li>{t('review_panel_and_error_logs_moved_to_the_left')}</li>
-      </ul>
-    </div>
-  )
-}
-
-const LeavingNote = () => {
-  return (
-    <p className="ide-redesign-switcher-modal-leave-text">
-      <Trans
-        i18nKey="you_can_leave_the_experiment_from_your_account_settings_at_any_time"
-        // eslint-disable-next-line react/jsx-key, jsx-a11y/anchor-has-content
-        components={[<a href="/user/settings" />]}
-        shouldUnescape
-        tOptions={{ interpolation: { escapeValue: true } }}
-      />
-    </p>
-  )
-}

+ 0 - 40
services/web/frontend/js/features/ide-redesign/components/toolbar/labs-actions.tsx

@@ -1,40 +0,0 @@
-import { useIdeRedesignSwitcherContext } from '@/features/ide-react/context/ide-redesign-switcher-context'
-import OLButton from '@/shared/components/ol/ol-button'
-import OLTooltip from '@/shared/components/ol/ol-tooltip'
-import MaterialIcon from '@/shared/components/material-icon'
-import { useCallback } from 'react'
-import { useTranslation } from 'react-i18next'
-import { GiveFeedbackLink } from './give-feedback-link'
-
-export const LabsActions = () => {
-  const { t } = useTranslation()
-  const { setShowSwitcherModal } = useIdeRedesignSwitcherContext()
-  const openEditorRedesignSwitcherModal = useCallback(() => {
-    setShowSwitcherModal(true)
-  }, [setShowSwitcherModal])
-
-  return (
-    <>
-      <div className="ide-redesign-toolbar-button-container">
-        <OLTooltip
-          id="tooltip-labs-button"
-          description={t(
-            'this_is_a_labs_experiment_for_the_new_overleaf_editor_some_features_are_still_in_progress'
-          )}
-          overlayProps={{ delay: 0, placement: 'bottom' }}
-        >
-          <OLButton
-            size="sm"
-            variant="secondary"
-            className="ide-redesign-labs-button"
-            onClick={openEditorRedesignSwitcherModal}
-            leadingIcon={<MaterialIcon type="experiment" unfilled />}
-          >
-            {t('labs')}
-          </OLButton>
-        </OLTooltip>
-      </div>
-      <GiveFeedbackLink />
-    </>
-  )
-}

+ 1 - 4
services/web/frontend/js/features/ide-redesign/components/toolbar/toolbar.tsx

@@ -5,7 +5,6 @@ import { OnlineUsers } from './online-users'
 import ShareProjectButton from './share-project-button'
 import ShareProjectButton from './share-project-button'
 import ChangeLayoutButton from './change-layout-button'
 import ChangeLayoutButton from './change-layout-button'
 import ShowHistoryButton from './show-history-button'
 import ShowHistoryButton from './show-history-button'
-import { LabsActions } from './labs-actions'
 import { useLayoutContext } from '@/shared/context/layout-context'
 import { useLayoutContext } from '@/shared/context/layout-context'
 import BackToEditorButton from '@/features/editor-navigation-toolbar/components/back-to-editor-button'
 import BackToEditorButton from '@/features/editor-navigation-toolbar/components/back-to-editor-button'
 import { useCallback } from 'react'
 import { useCallback } from 'react'
@@ -16,7 +15,6 @@ import importOverleafModules from '../../../../../macros/import-overleaf-module.
 import UpgradeButton from './upgrade-button'
 import UpgradeButton from './upgrade-button'
 import getMeta from '@/utils/meta'
 import getMeta from '@/utils/meta'
 import { useIdeReactContext } from '@/features/ide-react/context/ide-react-context'
 import { useIdeReactContext } from '@/features/ide-react/context/ide-react-context'
-import { isNewEditorInBeta } from '../../utils/new-editor-utils'
 import { BetaActions } from './beta-actions'
 import { BetaActions } from './beta-actions'
 
 
 const [publishModalModules] = importOverleafModules('publishModal')
 const [publishModalModules] = importOverleafModules('publishModal')
@@ -30,7 +28,6 @@ export const Toolbar = () => {
   const shouldDisplaySubmitButton =
   const shouldDisplaySubmitButton =
     (permissionsLevel === 'owner' || permissionsLevel === 'readAndWrite') &&
     (permissionsLevel === 'owner' || permissionsLevel === 'readAndWrite') &&
     SubmitProjectButton
     SubmitProjectButton
-  const newEditorBeta = isNewEditorInBeta()
 
 
   const handleBackToEditorClick = useCallback(() => {
   const handleBackToEditorClick = useCallback(() => {
     eventTracking.sendMB('navigation-clicked-history', { action: 'close' })
     eventTracking.sendMB('navigation-clicked-history', { action: 'close' })
@@ -57,7 +54,7 @@ export const Toolbar = () => {
       </div>
       </div>
       <ToolbarProjectTitle />
       <ToolbarProjectTitle />
       <div className="ide-redesign-toolbar-actions">
       <div className="ide-redesign-toolbar-actions">
-        {newEditorBeta ? <BetaActions /> : <LabsActions />}
+        <BetaActions />
         <OnlineUsers />
         <OnlineUsers />
         <ShowHistoryButton />
         <ShowHistoryButton />
         <ChangeLayoutButton />
         <ChangeLayoutButton />

+ 5 - 18
services/web/frontend/js/features/ide-redesign/hooks/use-survey-url.tsx

@@ -1,23 +1,10 @@
-import {
-  useFeatureFlag,
-  useSplitTest,
-} from '@/shared/context/split-test-context'
-import { isNewEditorInBeta } from '../utils/new-editor-utils'
+import { useSplitTest } from '@/shared/context/split-test-context'
 
 
 export const useSurveyUrl = () => {
 export const useSurveyUrl = () => {
-  const newErrorlogs = useFeatureFlag('new-editor-error-logs-redesign')
   const splitTestConfig = useSplitTest('editor-redesign')
   const splitTestConfig = useSplitTest('editor-redesign')
-  const newEditorBeta = isNewEditorInBeta()
 
 
-  if (newEditorBeta) {
-    return (
-      splitTestConfig.info?.badgeInfo?.url ||
-      'https://forms.gle/NGkALNUiMbanjp3Q7'
-    )
-  }
-
-  if (newErrorlogs) {
-    return 'https://forms.gle/83QJ9ALJkiugxTZf8'
-  }
-  return 'https://forms.gle/soyVStc5qDx9na1Z6'
+  return (
+    splitTestConfig.info?.badgeInfo?.url ||
+    'https://forms.gle/NGkALNUiMbanjp3Q7'
+  )
 }
 }

+ 1 - 12
services/web/frontend/js/features/ide-redesign/utils/new-editor-utils.ts

@@ -1,19 +1,8 @@
 import { useUserSettingsContext } from '@/shared/context/user-settings-context'
 import { useUserSettingsContext } from '@/shared/context/user-settings-context'
-import { isInExperiment } from '@/utils/labs-utils'
-import getMeta from '@/utils/meta'
 import { isSplitTestEnabled } from '@/utils/splitTestUtils'
 import { isSplitTestEnabled } from '@/utils/splitTestUtils'
 
 
-export const isNewEditorInBeta = () => {
-  const splitTestInfo = getMeta('ol-splitTestInfo') || {}
-  return splitTestInfo['editor-redesign']?.phase === 'beta'
-}
-
 export const canUseNewEditor = () => {
 export const canUseNewEditor = () => {
-  const inBetaPhase = isNewEditorInBeta()
-  return (
-    (!inBetaPhase && isInExperiment('editor-redesign')) ||
-    isSplitTestEnabled('editor-redesign')
-  )
+  return isSplitTestEnabled('editor-redesign')
 }
 }
 
 
 export const useIsNewEditorEnabled = () => {
 export const useIsNewEditorEnabled = () => {

+ 1 - 1
services/web/frontend/js/utils/labs-utils.ts

@@ -2,7 +2,7 @@ import getMeta from './meta'
 
 
 // Should be `never` when no experiments are active. Otherwise it should be a
 // Should be `never` when no experiments are active. Otherwise it should be a
 // union of active experiment names e.g. `'experiment1' | 'experiment2'`
 // union of active experiment names e.g. `'experiment1' | 'experiment2'`
-export type ActiveExperiment = 'editor-redesign'
+export type ActiveExperiment = never
 
 
 export const isInExperiment = (experiment: ActiveExperiment): boolean => {
 export const isInExperiment = (experiment: ActiveExperiment): boolean => {
   const experiments = getMeta('ol-labsExperiments')
   const experiments = getMeta('ol-labsExperiments')

+ 1 - 1
services/web/frontend/stylesheets/abstracts/mixins.scss

@@ -60,7 +60,7 @@
   }
   }
 }
 }
 
 
-@mixin labs-button {
+@mixin editor-switcher-button {
   @include ol-button-variant(
   @include ol-button-variant(
     $color: var(--green-60),
     $color: var(--green-60),
     $background: var(--bg-accent-03),
     $background: var(--bg-accent-03),

+ 0 - 8
services/web/frontend/stylesheets/pages/editor/ide-redesign-switcher-modal.scss

@@ -29,12 +29,4 @@
       }
       }
     }
     }
   }
   }
-
-  .ide-redesign-switcher-modal-leave-text {
-    color: var(--content-secondary);
-
-    a {
-      color: var(--link-ui);
-    }
-  }
 }
 }

+ 1 - 5
services/web/frontend/stylesheets/pages/editor/toolbar-redesign.scss

@@ -234,10 +234,6 @@
   white-space: nowrap;
   white-space: nowrap;
 }
 }
 
 
-.ide-redesign-labs-button.btn.btn-secondary {
-  @include labs-button;
-}
-
 .ide-redesign-beta-button.btn.btn-secondary {
 .ide-redesign-beta-button.btn.btn-secondary {
-  @include labs-button;
+  @include editor-switcher-button;
 }
 }

+ 1 - 1
services/web/frontend/stylesheets/pages/editor/toolbar.scss

@@ -534,7 +534,7 @@
 // Override a secondary button to ensure that the border is visible because
 // Override a secondary button to ensure that the border is visible because
 // overriding a borderless button will not add a border.
 // overriding a borderless button will not add a border.
 .toolbar-experiment-button.btn-secondary {
 .toolbar-experiment-button.btn-secondary {
-  @include labs-button;
+  @include editor-switcher-button;
 
 
   max-height: 39px;
   max-height: 39px;
   font-size: var(--font-size-01);
   font-size: var(--font-size-01);

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

@@ -52,7 +52,6 @@
   "access_denied": "Access Denied",
   "access_denied": "Access Denied",
   "access_edit_your_projects": "Access and edit your projects",
   "access_edit_your_projects": "Access and edit your projects",
   "access_levels_changed": "Access levels changed",
   "access_levels_changed": "Access levels changed",
-  "access_your_favourite_features_faster_with_our_new_streamlined_editor": "Access your favourite features faster with our new, streamlined editor.",
   "account": "Account",
   "account": "Account",
   "account_already_managed": "Your account is already managed.",
   "account_already_managed": "Your account is already managed.",
   "account_billed_manually": "Account billed manually",
   "account_billed_manually": "Account billed manually",
@@ -581,7 +580,6 @@
   "dont_forget_you_currently_have": "Don’t forget, you currently have:",
   "dont_forget_you_currently_have": "Don’t forget, you currently have:",
   "dont_have_account": "Don’t have an account?",
   "dont_have_account": "Don’t have an account?",
   "dont_reload_or_close_this_tab": "Don’t reload or close this tab.",
   "dont_reload_or_close_this_tab": "Don’t reload or close this tab.",
-  "double_clicking_on_the_pdf_shows": "Double clicking on the PDF shows the corresponding location in code. Added word count (7 May 2025)",
   "download": "Download",
   "download": "Download",
   "download_all": "Download all",
   "download_all": "Download all",
   "download_as_pdf": "Download as PDF",
   "download_as_pdf": "Download as PDF",
@@ -958,7 +956,6 @@
   "help_guides": "Help guides",
   "help_guides": "Help guides",
   "help_improve_overleaf_fill_out_this_survey": "If you would like to help us improve Overleaf, please take a moment to fill out <0>this survey</0>.",
   "help_improve_overleaf_fill_out_this_survey": "If you would like to help us improve Overleaf, please take a moment to fill out <0>this survey</0>.",
   "help_improve_screen_reader_fill_out_this_survey": "Help us improve your experience using a screen reader with __appName__ by filling out this quick survey.",
   "help_improve_screen_reader_fill_out_this_survey": "Help us improve your experience using a screen reader with __appName__ by filling out this quick survey.",
-  "help_shape_the_future_of_overleaf": "Help shape the future of Overleaf",
   "hide": "Hide",
   "hide": "Hide",
   "hide_configuration": "Hide configuration",
   "hide_configuration": "Hide configuration",
   "hide_deleted_user": "Hide deleted users",
   "hide_deleted_user": "Hide deleted users",
@@ -1148,7 +1145,6 @@
   "ja": "Japanese",
   "ja": "Japanese",
   "january": "January",
   "january": "January",
   "join": "Join",
   "join": "Join",
-  "join_beta": "Join beta",
   "join_beta_program": "Join the beta program",
   "join_beta_program": "Join the beta program",
   "join_labs": "Join Labs",
   "join_labs": "Join Labs",
   "join_now": "Join now",
   "join_now": "Join now",
@@ -1193,7 +1189,6 @@
   "latam_discount_modal_info": "Unlock the full potential of Overleaf with a __discount__% discount on premium subscriptions paid in __currencyName__. Get a longer compile timeout, full document history, track changes, additional collaborators, and more.",
   "latam_discount_modal_info": "Unlock the full potential of Overleaf with a __discount__% discount on premium subscriptions paid in __currencyName__. Get a longer compile timeout, full document history, track changes, additional collaborators, and more.",
   "latam_discount_modal_title": "Premium subscription discount",
   "latam_discount_modal_title": "Premium subscription discount",
   "latam_discount_offer_plans_page_banner": "__flag__ We’ve applied a __discount__ discount to premium plans on this page for our users in __country__. Check out the new lower prices (in __currency__).",
   "latam_discount_offer_plans_page_banner": "__flag__ We’ve applied a __discount__ discount to premium plans on this page for our users in __country__. Check out the new lower prices (in __currency__).",
-  "latest_updates": "Latest updates",
   "latex_articles_page_title": "Articles - Papers, Presentations, Reports and more",
   "latex_articles_page_title": "Articles - Papers, Presentations, Reports and more",
   "latex_examples": "LaTeX examples",
   "latex_examples": "LaTeX examples",
   "latex_examples_page_title": "Examples - Equations, Formatting, TikZ, Packages and More",
   "latex_examples_page_title": "Examples - Equations, Formatting, TikZ, Packages and More",
@@ -1420,14 +1415,12 @@
   "neither_agree_nor_disagree": "Neither agree nor disagree",
   "neither_agree_nor_disagree": "Neither agree nor disagree",
   "new_compile_domain_notice": "We’ve recently migrated PDF downloads to a new domain. Something might be blocking your browser from accessing that new domain, <0>__compilesUserContentDomain__</0>. This could be caused by network blocking or a strict browser plugin rule. Please follow our <1>troubleshooting guide</1>.",
   "new_compile_domain_notice": "We’ve recently migrated PDF downloads to a new domain. Something might be blocking your browser from accessing that new domain, <0>__compilesUserContentDomain__</0>. This could be caused by network blocking or a strict browser plugin rule. Please follow our <1>troubleshooting guide</1>.",
   "new_create_tables_and_equations": "NEW! <sparkle/> Create tables and equations in seconds",
   "new_create_tables_and_equations": "NEW! <sparkle/> Create tables and equations in seconds",
-  "new_error_logs_panel": "New error logs panel. Added ‘Go to location in code’ and ‘Go to location in PDF’ buttons (17 June 2025)",
   "new_file": "New file",
   "new_file": "New file",
   "new_folder": "New folder",
   "new_folder": "New folder",
   "new_look_and_feel": "New look and feel",
   "new_look_and_feel": "New look and feel",
   "new_look_and_placement_of_the_settings": "New look and placement of the settings",
   "new_look_and_placement_of_the_settings": "New look and placement of the settings",
   "new_name": "New Name",
   "new_name": "New Name",
   "new_navigation_introducing_left_hand_side_rail_and_top_menus": "New navigation - introducing left-hand side rail and top menus",
   "new_navigation_introducing_left_hand_side_rail_and_top_menus": "New navigation - introducing left-hand side rail and top menus",
-  "new_overleaf_editor": "New Overleaf editor",
   "new_password": "New password",
   "new_password": "New password",
   "new_project": "New project",
   "new_project": "New project",
   "new_project_name": "New project name",
   "new_project_name": "New project name",
@@ -1992,7 +1985,6 @@
   "search_whole_word": "Whole word",
   "search_whole_word": "Whole word",
   "search_within_selection": "Within selection",
   "search_within_selection": "Within selection",
   "searched_path_for_lines_containing": "Searched __path__ for lines containing \"__query__\"",
   "searched_path_for_lines_containing": "Searched __path__ for lines containing \"__query__\"",
-  "searching_all_project_files_is_now_available": "Searching all project files is now available (2 June 2025)",
   "secondary_email_password_reset": "That email is registered as a secondary email. Please enter the primary email for your account.",
   "secondary_email_password_reset": "That email is registered as a secondary email. Please enter the primary email for your account.",
   "security": "Security",
   "security": "Security",
   "see_suggestions_from_collaborators": "See suggestions from collaborators",
   "see_suggestions_from_collaborators": "See suggestions from collaborators",
@@ -2296,14 +2288,12 @@
   "thank_you_for_being_part_of_our_beta_program": "Thank you for being part of our beta program, where you can have <0>early access to new features</0> and help us understand your needs better",
   "thank_you_for_being_part_of_our_beta_program": "Thank you for being part of our beta program, where you can have <0>early access to new features</0> and help us understand your needs better",
   "thank_you_for_your_feedback": "Thank you for your feedback!",
   "thank_you_for_your_feedback": "Thank you for your feedback!",
   "thanks": "Thanks",
   "thanks": "Thanks",
-  "thanks_for_being_part_of_this_labs_experiment_your_feedback_will_help_us_make_the_new_editor_the_best_yet": "Thanks for being part of this Labs experiment. Your feedback and support will help us make the new editor the best yet! Some features are still in progress, so if you need something that’s missing, you can switch back to the old editor.",
   "thanks_for_confirming_your_email_address": "Thanks for confirming your email address",
   "thanks_for_confirming_your_email_address": "Thanks for confirming your email address",
   "thanks_for_getting_in_touch": "Thanks for getting in touch. Our team will get back to you by email as soon as possible.",
   "thanks_for_getting_in_touch": "Thanks for getting in touch. Our team will get back to you by email as soon as possible.",
   "thanks_for_subscribing": "Thanks for subscribing!",
   "thanks_for_subscribing": "Thanks for subscribing!",
   "thanks_for_subscribing_to_plan_with_add_on": "Thank you for subscribing to the __planName__ plan with the __addOnName__ add-on. It’s support from people like yourself that allows __appName__ to continue to grow and improve.",
   "thanks_for_subscribing_to_plan_with_add_on": "Thank you for subscribing to the __planName__ plan with the __addOnName__ add-on. It’s support from people like yourself that allows __appName__ to continue to grow and improve.",
   "thanks_for_subscribing_to_the_add_on": "Thank you for subscribing to the __addOnName__ add-on. It’s support from people like yourself that allows __appName__ to continue to grow and improve.",
   "thanks_for_subscribing_to_the_add_on": "Thank you for subscribing to the __addOnName__ add-on. It’s support from people like yourself that allows __appName__ to continue to grow and improve.",
   "thanks_for_subscribing_you_help_sl": "Thank you for subscribing to the __planName__ plan. It’s support from people like yourself that allows __appName__ to continue to grow and improve.",
   "thanks_for_subscribing_you_help_sl": "Thank you for subscribing to the __planName__ plan. It’s support from people like yourself that allows __appName__ to continue to grow and improve.",
-  "thanks_for_trying_the_new_editor": "Thanks for trying the new editor",
   "thanks_settings_updated": "Thanks, your settings have been updated.",
   "thanks_settings_updated": "Thanks, your settings have been updated.",
   "the_add_on_will_remain_active_until": "The add-on will remain active until the end of the current billing period.",
   "the_add_on_will_remain_active_until": "The add-on will remain active until the end of the current billing period.",
   "the_code_editor_color_scheme": "The code editor color scheme",
   "the_code_editor_color_scheme": "The code editor color scheme",
@@ -2313,9 +2303,7 @@
   "the_following_files_and_folders_already_exist_in_this_project": "The following files and folders already exist in this project:",
   "the_following_files_and_folders_already_exist_in_this_project": "The following files and folders already exist in this project:",
   "the_following_folder_already_exists_in_this_project": "The following folder already exists in this project:",
   "the_following_folder_already_exists_in_this_project": "The following folder already exists in this project:",
   "the_following_folder_already_exists_in_this_project_plural": "The following folders already exist in this project:",
   "the_following_folder_already_exists_in_this_project_plural": "The following folders already exist in this project:",
-  "the_labs_experiment_has_now_finished": "The Labs experiment has now finished, but you can still use the new editor by joining our beta program.",
   "the_latex_engine_used_for_compiling": "The LaTeX engine used for compiling",
   "the_latex_engine_used_for_compiling": "The LaTeX engine used for compiling",
-  "the_new_overleaf_editor": "The new Overleaf editor",
   "the_new_overleaf_editor_try_now_in_beta": "The new Overleaf editor — try now in beta",
   "the_new_overleaf_editor_try_now_in_beta": "The new Overleaf editor — try now in beta",
   "the_next_payment_will_be_collected_on": "The next payment will be collected on <strong>__date__</strong>.",
   "the_next_payment_will_be_collected_on": "The next payment will be collected on <strong>__date__</strong>.",
   "the_original_text_has_changed": "The original text has changed, so this suggestion can’t be applied",
   "the_original_text_has_changed": "The original text has changed, so this suggestion can’t be applied",
@@ -2355,7 +2343,6 @@
   "this_field_is_required": "This field is required",
   "this_field_is_required": "This field is required",
   "this_grants_access_to_features_2": "This grants you access to <0>__appName__</0> <0>__featureType__</0> features.",
   "this_grants_access_to_features_2": "This grants you access to <0>__appName__</0> <0>__featureType__</0> features.",
   "this_is_a_beta_release_for_the_new_overleaf_editor": "This is a beta release for the new Overleaf editor. You can switch back to the old editor at any time.",
   "this_is_a_beta_release_for_the_new_overleaf_editor": "This is a beta release for the new Overleaf editor. You can switch back to the old editor at any time.",
-  "this_is_a_labs_experiment_for_the_new_overleaf_editor_some_features_are_still_in_progress": "This is a Labs experiment for the new Overleaf editor. Some features are still in progress, so if you need something that’s missing, you can switch back to the old editor at any time.",
   "this_is_a_new_feature": "This is a new feature",
   "this_is_a_new_feature": "This is a new feature",
   "this_is_the_file_that_references_pulled_from_your_reference_manager_will_be_added_to": "This is the file that references pulled from your reference manager will be added to.",
   "this_is_the_file_that_references_pulled_from_your_reference_manager_will_be_added_to": "This is the file that references pulled from your reference manager will be added to.",
   "this_is_your_template": "This is your template from your project",
   "this_is_your_template": "This is your template from your project",
@@ -2662,7 +2649,6 @@
   "well_be_here_when_youre_ready": "We’ll be here when you’re ready to dive back in! 🦆",
   "well_be_here_when_youre_ready": "We’ll be here when you’re ready to dive back in! 🦆",
   "were_making_some_changes_to_project_sharing_this_means_you_will_be_visible": "We’re making some <0>changes to project sharing</0>. This means, as someone with edit access, your name and email address will be visible to the project owner and other editors.",
   "were_making_some_changes_to_project_sharing_this_means_you_will_be_visible": "We’re making some <0>changes to project sharing</0>. This means, as someone with edit access, your name and email address will be visible to the project owner and other editors.",
   "were_performing_maintenance": "We’re performing maintenance on Overleaf and you need to wait a moment. Sorry for any inconvenience. The editor will refresh automatically in __seconds__ seconds.",
   "were_performing_maintenance": "We’re performing maintenance on Overleaf and you need to wait a moment. Sorry for any inconvenience. The editor will refresh automatically in __seconds__ seconds.",
-  "were_redesigning_our_editor_to_make_it_easier_to_use": "We’re redesigning our editor to make it easier to use and ensure it’s future ready. Try it out and give us your feedback to help us get this right. (Some features are still in the works, so you can switch back at any time.)",
   "were_reducing_compile_timeout": "We’re in the process of <0>reducing the compile timeout limit</0> on our free plan, which may affect your project in future.",
   "were_reducing_compile_timeout": "We’re in the process of <0>reducing the compile timeout limit</0> on our free plan, which may affect your project in future.",
   "weve_redesigned_our_editor_to_make_it_easier_to_use_and_future_ready": "We’ve redesigned our editor to make it easier to use and future ready. It’s now in beta, so try it out and give us your feedback.",
   "weve_redesigned_our_editor_to_make_it_easier_to_use_and_future_ready": "We’ve redesigned our editor to make it easier to use and future ready. It’s now in beta, so try it out and give us your feedback.",
   "what_did_you_find_most_helpful": "What did you find most helpful?",
   "what_did_you_find_most_helpful": "What did you find most helpful?",
@@ -2672,7 +2658,6 @@
   "what_happens_when_sso_is_enabled": "What happens when SSO is enabled?",
   "what_happens_when_sso_is_enabled": "What happens when SSO is enabled?",
   "what_should_we_call_you": "What should we call you?",
   "what_should_we_call_you": "What should we call you?",
   "whats_different": "What’s different?",
   "whats_different": "What’s different?",
-  "whats_different_in_the_new_editor": "What’s different in the new editor?",
   "when_you_join_labs": "When you join Labs, you can choose which experiments you want to be part of. Once you’ve done that, you can use Overleaf as normal, but you’ll see any labs features marked with this badge:",
   "when_you_join_labs": "When you join Labs, you can choose which experiments you want to be part of. Once you’ve done that, you can use Overleaf as normal, but you’ll see any labs features marked with this badge:",
   "when_you_tick_the_include_caption_box": "When you tick the box “Include caption” the image will be inserted into your document with a placeholder caption. To edit it, you simply select the placeholder text and type to replace it with your own.",
   "when_you_tick_the_include_caption_box": "When you tick the box “Include caption” the image will be inserted into your document with a placeholder caption. To edit it, you simply select the placeholder text and type to replace it with your own.",
   "why_latex": "Why LaTeX?",
   "why_latex": "Why LaTeX?",
@@ -2723,7 +2708,6 @@
   "you_are_using_your_organization_email_x_would_like_you_to_take_action": "Because you are using your organization email on Overleaf, __companyName__ would like you to take one of the following actions.",
   "you_are_using_your_organization_email_x_would_like_you_to_take_action": "Because you are using your organization email on Overleaf, __companyName__ would like you to take one of the following actions.",
   "you_can_also_choose_to_view_anonymously_or_leave_the_project": "You can also choose to <0>view anonymously</0> (you will lose edit access) or <1>leave the project</1>.",
   "you_can_also_choose_to_view_anonymously_or_leave_the_project": "You can also choose to <0>view anonymously</0> (you will lose edit access) or <1>leave the project</1>.",
   "you_can_buy_this_plan_but_not_as_a_trial": "You can buy this plan but not as a trial, as you’ve completed a trial recently.",
   "you_can_buy_this_plan_but_not_as_a_trial": "You can buy this plan but not as a trial, as you’ve completed a trial recently.",
-  "you_can_leave_the_experiment_from_your_account_settings_at_any_time": "You can leave the experiment from your <0>account settings</0> at any time.",
   "you_can_manage_your_reference_manager_integrations_from_your_account_settings_page": "You can manage your reference manager integrations from your <0>account settings page</0>.",
   "you_can_manage_your_reference_manager_integrations_from_your_account_settings_page": "You can manage your reference manager integrations from your <0>account settings page</0>.",
   "you_can_now_enable_sso": "You can now enable SSO on your group settings page.",
   "you_can_now_enable_sso": "You can now enable SSO on your group settings page.",
   "you_can_now_log_in_sso": "You can now log in through your institution and if eligible you will receive <0>__appName__ Professional features</0>.",
   "you_can_now_log_in_sso": "You can now log in through your institution and if eligible you will receive <0>__appName__ Professional features</0>.",
@@ -2804,7 +2788,6 @@
   "youre_about_to_enable_single_sign_on_sso_only": "You’re about to enable single sign-on (SSO). Before you do this, you should ensure you’re confident the SSO configuration is correct.",
   "youre_about_to_enable_single_sign_on_sso_only": "You’re about to enable single sign-on (SSO). Before you do this, you should ensure you’re confident the SSO configuration is correct.",
   "youre_adding_x_licenses_to_your_plan_giving_you_a_total_of_y_licenses": "You’re adding <0>__adding__</0> licenses to your plan giving you a total of <1>__total__</1> licenses.",
   "youre_adding_x_licenses_to_your_plan_giving_you_a_total_of_y_licenses": "You’re adding <0>__adding__</0> licenses to your plan giving you a total of <1>__total__</1> licenses.",
   "youre_already_setup_for_sso": "You’re already set up for SSO",
   "youre_already_setup_for_sso": "You’re already set up for SSO",
-  "youre_helping_us_shape_the_future_of_overleaf": "You’re helping us shape the future of Overleaf",
   "youre_joining": "You’re joining",
   "youre_joining": "You’re joining",
   "youre_on_free_trial_which_ends_on": "You’re on a free trial which ends on <0>__date__</0>.",
   "youre_on_free_trial_which_ends_on": "You’re on a free trial which ends on <0>__date__</0>.",
   "youre_signed_in_as_logout": "You’re signed in as <0>__email__</0>. <1>Log out.</1>",
   "youre_signed_in_as_logout": "You’re signed in as <0>__email__</0>. <1>Log out.</1>",