import { ChangeEvent, FC, memo, useCallback } from 'react' import useScopeValue from '../../../shared/hooks/use-scope-value' import Tooltip from '../../../shared/components/tooltip' 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 EditorSwitch() { const { t } = useTranslation() const [newSourceEditor, setNewSourceEditor] = useScopeValue( 'editor.newSourceEditor' ) const [richText, setRichText] = useScopeValue('editor.showRichText') const [visual, setVisual] = useScopeValue('editor.showVisual') const [docName] = useScopeValue('editor.open_doc_name') const richTextAvailable = isValidTeXFile(docName) const richTextOrVisual = richText || (richTextAvailable && visual) const handleChange = useCallback( event => { const editorType = event.target.value switch (editorType) { case 'ace': setRichText(false) setVisual(false) setNewSourceEditor(false) break case 'cm6': setRichText(false) setVisual(false) setNewSourceEditor(true) break case 'rich-text': if (getMeta('ol-richTextVariant') === 'cm6') { setRichText(false) setVisual(true) setNewSourceEditor(true) } else { setRichText(true) setVisual(false) } break } sendMB('editor-switch-change', { editorType }) }, [setRichText, setVisual, setNewSourceEditor] ) return (