| import Editor from 'react-simple-code-editor' |
| import { highlight, languages } from 'prismjs/components/prism-core' |
| import 'prismjs/components/prism-clike' |
| import 'prismjs/components/prism-javascript' |
| import 'prismjs/components/prism-json' |
| import 'prismjs/components/prism-markup' |
| import './prism-dark.css' |
| import PropTypes from 'prop-types' |
| import { useTheme } from '@mui/material/styles' |
|
|
| export const DarkCodeEditor = ({ value, placeholder, disabled = false, type, style, onValueChange, onMouseUp, onBlur }) => { |
| const theme = useTheme() |
|
|
| return ( |
| <Editor |
| disabled={disabled} |
| value={value} |
| placeholder={placeholder} |
| highlight={(code) => highlight(code, type === 'json' ? languages.json : languages.js)} |
| padding={10} |
| onValueChange={onValueChange} |
| onMouseUp={onMouseUp} |
| onBlur={onBlur} |
| style={{ |
| ...style, |
| background: theme.palette.codeEditor.main |
| }} |
| textareaClassName='editor__textarea' |
| /> |
| ) |
| } |
|
|
| DarkCodeEditor.propTypes = { |
| value: PropTypes.string, |
| placeholder: PropTypes.string, |
| disabled: PropTypes.bool, |
| type: PropTypes.string, |
| style: PropTypes.object, |
| onValueChange: PropTypes.func, |
| onMouseUp: PropTypes.func, |
| onBlur: PropTypes.func |
| } |
|
|