import Editor, { OnMount, loader } from '@monaco-editor/react'; import React from 'react'; import { useTheme } from '@/hooks/use-theme'; import monaco from '@/monaco'; loader.config({ monaco, paths: { vs: '/webui/monaco-editor/min/vs', }, }); loader.config({ 'vs/nls': { availableLanguages: { '*': 'zh-cn' }, }, }); export interface CodeEditorProps extends React.ComponentProps { test?: string } export type CodeEditorRef = monaco.editor.IStandaloneCodeEditor; const CodeEditor = React.forwardRef( (props, ref) => { const { isDark } = useTheme(); const handleEditorDidMount: OnMount = (editor, monaco) => { if (ref) { if (typeof ref === 'function') { ref(editor); } else { (ref as React.RefObject).current = editor; } } if (props.onMount) { props.onMount(editor, monaco); } }; return ( ); } ); export default CodeEditor;