import { ChangeEvent, FC, memo, useCallback } from 'react' import OLTooltip from '@/shared/components/ol/ol-tooltip' import { sendMB } from '../../../infrastructure/event-tracking' import { isValidTeXFile } from '../../../main/is-valid-tex-file' import { useTranslation } from 'react-i18next' import { useEditorOpenDocContext } from '@/features/ide-react/context/editor-open-doc-context' import { useEditorPropertiesContext } from '@/features/ide-react/context/editor-properties-context' function EditorSwitch() { const { t } = useTranslation() const { showVisual: visual, setShowVisual: setVisual } = useEditorPropertiesContext() const { openDocName } = useEditorOpenDocContext() const richTextAvailable = openDocName ? isValidTeXFile(openDocName) : false const handleChange = useCallback( (event: ChangeEvent) => { const editorType = event.target.value switch (editorType) { case 'cm6': setVisual(false) break case 'rich-text': setVisual(true) break } sendMB('editor-switch-change', { editorType }) }, [setVisual] ) return (
Editor mode.
) } const RichTextToggle: FC<{ checked: boolean disabled: boolean handleChange: (event: ChangeEvent) => void }> = ({ checked, disabled, handleChange }) => { const { t } = useTranslation() const toggle = ( ) if (disabled) { return ( {toggle} ) } return ( {toggle} ) } export default memo(EditorSwitch)