Files
Hydro/ui/components/scratchpad/ScratchpadEditorContainer.js
T
masnn f9468536de upgrade dep:
css-loader 0.28->3.5
del 4.1->5.1
eslint 5.18->6.8
eslint-config-airbnb 17.1->18.1
eslint-loader 2.1->4.0
file-loader 2.0->6.0
fs.extra 8.0->9.0
gulp 2.0->3.0
gulp-nunjucks 4.0->5.0
json-loader 0.5->Removed
style-loader 0.23->1.1
uglifyjs-webpack-plugin 1.3->2.2
yargs 13.2->15.3
katex 0.10->0.11
react-monaco-editor 0.35->0.36
timeage-react 1.2->3.0
timeago.js 3.0->4.0
uuid 3.3->7.0
2020-04-15 12:47:55 +08:00

41 lines
990 B
JavaScript

import React from 'react';
import { connect } from 'react-redux';
import MonacoEditor from 'react-monaco-editor';
import * as languageEnum from 'vj/constant/language';
const getOptions = (lang) => ({
lineNumbers: true,
mode: languageEnum.LANG_MONACO_MODES[lang],
});
const mapStateToProps = (state) => ({
code: state.editor.code,
lang: state.editor.lang,
});
const mapDispatchToProps = (dispatch) => ({
handleUpdateCode: (code) => {
dispatch({
type: 'SCRATCHPAD_EDITOR_UPDATE_CODE',
payload: code,
});
},
});
@connect(mapStateToProps, mapDispatchToProps)
export default class ScratchpadEditorContainer extends React.PureComponent {
render() {
return (
<MonacoEditor
language={languageEnum.LANG_MONACO_MODES[this.props.lang]}
theme="vs-dark"
value={this.props.code}
options={getOptions(this.props.lang)}
ref="editor"
onChange={(code) => this.props.handleUpdateCode(code)}
/>
);
}
}