diff --git a/services/web/app/src/Features/Project/ProjectController.js b/services/web/app/src/Features/Project/ProjectController.js
index 4c3531654e..c0b7f4d2b1 100644
--- a/services/web/app/src/Features/Project/ProjectController.js
+++ b/services/web/app/src/Features/Project/ProjectController.js
@@ -636,49 +636,6 @@ const ProjectController = {
}
)
},
- editorLeftMenuAssignment(cb) {
- SplitTestHandler.getAssignment(
- req,
- res,
- 'editor-left-menu',
- (error, assignment) => {
- // do not fail editor load if assignment fails
- if (error) {
- cb(null, { variant: 'default' })
- } else {
- cb(null, assignment)
- }
- }
- )
- },
- // this is only needed until the survey link is removed from the toolbar
- richTextAssignment(cb) {
- SplitTestHandler.getAssignment(
- req,
- res,
- 'rich-text',
- (error, assignment) => {
- // do not fail editor load if assignment fails
- if (error) {
- cb(null, { variant: 'default' })
- } else {
- cb(null, assignment)
- }
- }
- )
- },
- figureModalAssignment(cb) {
- SplitTestHandler.getAssignment(req, res, 'figure-modal', () => {
- // We'll pick up the assignment from the res.locals assignment.
- cb()
- })
- },
- tableGeneratorAssignment(cb) {
- SplitTestHandler.getAssignment(req, res, 'table-generator', () => {
- // We'll pick up the assignment from the res.locals assignment.
- cb()
- })
- },
tableGeneratorPromotionAssignment(cb) {
SplitTestHandler.getAssignment(
req,
@@ -690,27 +647,6 @@ const ProjectController = {
}
)
},
- pasteHtmlAssignment(cb) {
- SplitTestHandler.getAssignment(req, res, 'paste-html', () => {
- // We'll pick up the assignment from the res.locals assignment.
- cb()
- })
- },
- sourceEditorToolbarAssigment(cb) {
- SplitTestHandler.getAssignment(
- req,
- res,
- 'source-editor-toolbar',
- (error, assignment) => {
- // do not fail editor load if assignment fails
- if (error) {
- cb(null, { variant: 'default' })
- } else {
- cb(null, assignment)
- }
- }
- )
- },
historyViewAssignment(cb) {
SplitTestHandler.getAssignment(
req,
@@ -761,8 +697,6 @@ const ProjectController = {
isInvitedMember,
brandVariation,
pdfjsAssignment,
- editorLeftMenuAssignment,
- sourceEditorToolbarAssigment,
historyViewAssignment,
reviewPanelAssignment,
projectTags,
@@ -853,9 +787,6 @@ const ProjectController = {
// Allow override via legacy_source_editor=true in query string
shouldDisplayFeature('legacy_source_editor')
- const editorLeftMenuReact =
- editorLeftMenuAssignment?.variant === 'react'
-
const showSymbolPalette =
!Features.hasFeature('saas') ||
(user.features && user.features.symbolPalette)
@@ -889,7 +820,6 @@ const ProjectController = {
bodyClasses: ['editor'],
project_id: project._id,
projectName: project.name,
- editorLeftMenuReact,
user: {
id: userId,
email: user.email,
@@ -943,9 +873,7 @@ const ProjectController = {
pdfjsVariant: pdfjsAssignment.variant,
debugPdfDetach,
showLegacySourceEditor,
- showSourceToolbar:
- !showLegacySourceEditor &&
- sourceEditorToolbarAssigment.variant === 'enabled',
+ showSourceToolbar: !showLegacySourceEditor,
showSymbolPalette,
symbolPaletteAvailable: Features.hasFeature('symbol-palette'),
detachRole,
diff --git a/services/web/app/views/project/editor/main.pug b/services/web/app/views/project/editor/main.pug
index de964581db..6a2fac18c3 100644
--- a/services/web/app/views/project/editor/main.pug
+++ b/services/web/app/views/project/editor/main.pug
@@ -1,7 +1,4 @@
-if editorLeftMenuReact
- include ./left-menu-react
-else
- include ./left-menu
+include ./left-menu-react
#chat-wrapper.full-size(
layout="chat",
diff --git a/services/web/frontend/js/features/source-editor/components/editor-switch-legacy.tsx b/services/web/frontend/js/features/source-editor/components/editor-switch-legacy.tsx
index 18e068855a..92baacd0c3 100644
--- a/services/web/frontend/js/features/source-editor/components/editor-switch-legacy.tsx
+++ b/services/web/frontend/js/features/source-editor/components/editor-switch-legacy.tsx
@@ -5,7 +5,6 @@ import { sendMB } from '../../../infrastructure/event-tracking'
import getMeta from '../../../utils/meta'
import isValidTeXFile from '../../../main/is-valid-tex-file'
import { useTranslation } from 'react-i18next'
-import SplitTestBadge from '../../../shared/components/split-test-badge'
function Badge() {
const content = (
@@ -125,10 +124,6 @@ function EditorSwitch() {
handleChange={handleChange}
/>
-
- {!!richTextOrVisual && (
-
- )}
)
}
diff --git a/services/web/frontend/js/features/source-editor/components/editor-switch.tsx b/services/web/frontend/js/features/source-editor/components/editor-switch.tsx
index 7c4113e154..b6e7896580 100644
--- a/services/web/frontend/js/features/source-editor/components/editor-switch.tsx
+++ b/services/web/frontend/js/features/source-editor/components/editor-switch.tsx
@@ -4,8 +4,8 @@ import Tooltip from '../../../shared/components/tooltip'
import { sendMB } from '../../../infrastructure/event-tracking'
import isValidTeXFile from '../../../main/is-valid-tex-file'
import { useTranslation } from 'react-i18next'
-import SplitTestBadge from '../../../shared/components/split-test-badge'
import { PromotionOverlay } from './table-generator/promotion/popover'
+import { FeedbackBadge } from '@/shared/components/feedback-badge'
function EditorSwitch() {
const { t } = useTranslation()
@@ -71,12 +71,24 @@ function EditorSwitch() {
{!!richTextOrVisual && (
-
+ }
+ />
)}
)
}
+const VisualEditorFeedbackContent = () => (
+ <>
+ We have a new Visual Editor!
+
+ Click to give feedback
+ >
+)
+
const RichTextToggle: FC<{
checked: boolean
disabled: boolean
diff --git a/services/web/frontend/js/features/source-editor/components/figure-modal/figure-modal.tsx b/services/web/frontend/js/features/source-editor/components/figure-modal/figure-modal.tsx
index 95d973564b..3203432f13 100644
--- a/services/web/frontend/js/features/source-editor/components/figure-modal/figure-modal.tsx
+++ b/services/web/frontend/js/features/source-editor/components/figure-modal/figure-modal.tsx
@@ -11,7 +11,6 @@ import { FigureModalFooter } from './figure-modal-footer'
import { memo, useCallback, useEffect } from 'react'
import { useCodeMirrorViewContext } from '../codemirror-editor'
import { ChangeSpec } from '@codemirror/state'
-import SplitTestBadge from '../../../../shared/components/split-test-badge'
import {
FigureData,
PastedImageData,
@@ -22,6 +21,7 @@ import { ensureEmptyLine } from '../../extensions/toolbar/commands'
import { useTranslation } from 'react-i18next'
import useEventListener from '../../../../shared/hooks/use-event-listener'
import { prepareLines } from '../../utils/prepare-lines'
+import { FeedbackBadge } from '@/shared/components/feedback-badge'
export const FigureModal = memo(function FigureModal() {
return (
@@ -268,9 +268,10 @@ const FigureModalContent = () => {
: sourcePickerShown
? t('replace_figure')
: getTitle(source)}{' '}
-
diff --git a/services/web/frontend/js/features/source-editor/components/paste-html/pasted-content-menu.tsx b/services/web/frontend/js/features/source-editor/components/paste-html/pasted-content-menu.tsx
index 3ab0b6edff..87f7ef56c9 100644
--- a/services/web/frontend/js/features/source-editor/components/paste-html/pasted-content-menu.tsx
+++ b/services/web/frontend/js/features/source-editor/components/paste-html/pasted-content-menu.tsx
@@ -12,8 +12,7 @@ import { useTranslation } from 'react-i18next'
import { EditorView } from '@codemirror/view'
import { PastedContent } from '../../extensions/visual/pasted-content'
import useEventListener from '../../../../shared/hooks/use-event-listener'
-import SplitTestBadge from '../../../../shared/components/split-test-badge'
-import { useSplitTestContext } from '../../../../shared/context/split-test-context'
+import { FeedbackBadge } from '@/shared/components/feedback-badge'
const isMac = /Mac/.test(window.navigator?.platform)
@@ -30,8 +29,6 @@ export const PastedContentMenu: FC<{
const [menuOpen, setMenuOpen] = useState(false)
const toggleButtonRef = useRef(null)
const { t } = useTranslation()
- const { splitTestInfo } = useSplitTestContext()
- const feedbackURL = splitTestInfo['paste-html']?.badgeInfo?.url
// record whether the Shift key is currently down, for use in the `paste` event handler
const shiftRef = useRef(false)
@@ -138,13 +135,16 @@ export const PastedContentMenu: FC<{