@tomino/dynamic-form-semantic-ui
Version:
Semantic UI form renderer based on dynamic form generation
30 lines • 1.31 kB
JavaScript
import * as React from 'react';
import { observer } from 'mobx-react';
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-css';
import 'prismjs/components/prism-graphql';
import 'prismjs/components/prism-markup';
import 'prismjs/themes/prism-dark.css';
import { setValue } from '../helpers';
import { EditorContext } from '../editor/editor_context';
import { parseProps } from './properties_common';
export const CodeEditor = observer((props) => {
const context = React.useContext(EditorContext);
const onChange = React.useMemo(() => (code) => setValue(props, context, code), [
context,
props
]);
const { formElement } = props;
const { value } = parseProps(props, context, true);
return (React.createElement(Editor, { value: value || '', onValueChange: onChange, highlight: code => highlight(code || '', languages[formElement.props.language]), padding: 10, style: {
fontFamily: '"Fira code", "Fira Mono", monospace',
fontSize: 12,
flex: 1,
marginTop: '3px',
marginLeft: '3px'
} }));
});
//# sourceMappingURL=code.js.map