update App.js, src/components/Modal/index.js, src/components/ReactMonacoEditor/index.js and src/components/Tabbar/index.js
parent
b564c6e6d3
commit
fe04b3e2d9
4 changed files with 101 additions and 89 deletions
@ -1,97 +1,105 @@ |
|||||||
import React from "react"; |
// import React from "react";
|
||||||
import { render } from "react-dom"; |
// import { render } from "react-dom";
|
||||||
import MonacoEditor, { MonacoDiffEditor } from "react-monaco-editor"; |
// import MonacoEditor, { MonacoDiffEditor } from "react-monaco-editor";
|
||||||
|
|
||||||
|
// class CodeEditor extends React.Component {
|
||||||
|
// constructor() {
|
||||||
|
// super();
|
||||||
|
// this.state = {
|
||||||
|
// code: "// type your code... \n",
|
||||||
|
// theme: "vs-light",
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
|
||||||
|
// onChange = (newValue) => {
|
||||||
|
// console.log("onChange", newValue); // eslint-disable-line no-console
|
||||||
|
// };
|
||||||
|
|
||||||
class CodeEditor extends React.Component { |
// editorDidMount = (editor) => {
|
||||||
constructor() { |
// // eslint-disable-next-line no-console
|
||||||
super(); |
// console.log("editorDidMount", editor, editor.getValue(), editor.getModel());
|
||||||
this.state = { |
// this.editor = editor;
|
||||||
code: "// type your code... \n", |
// };
|
||||||
theme: "vs-light", |
|
||||||
}; |
|
||||||
} |
|
||||||
|
|
||||||
onChange = (newValue) => { |
// changeEditorValue = () => {
|
||||||
console.log("onChange", newValue); // eslint-disable-line no-console
|
// if (this.editor) {
|
||||||
}; |
// this.editor.setValue("// code changed! \n");
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
editorDidMount = (editor) => { |
// changeBySetState = () => {
|
||||||
// eslint-disable-next-line no-console
|
// this.setState({ code: "// code changed by setState! \n" });
|
||||||
console.log("editorDidMount", editor, editor.getValue(), editor.getModel()); |
// };
|
||||||
this.editor = editor; |
|
||||||
}; |
|
||||||
|
|
||||||
changeEditorValue = () => { |
// setDarkTheme = () => {
|
||||||
if (this.editor) { |
// this.setState({ theme: "vs-dark" });
|
||||||
this.editor.setValue("// code changed! \n"); |
// };
|
||||||
} |
|
||||||
}; |
|
||||||
|
|
||||||
changeBySetState = () => { |
// setLightTheme = () => {
|
||||||
this.setState({ code: "// code changed by setState! \n" }); |
// this.setState({ theme: "vs-light" });
|
||||||
}; |
// };
|
||||||
|
|
||||||
setDarkTheme = () => { |
// render() {
|
||||||
this.setState({ theme: "vs-dark" }); |
// const { code, theme } = this.state;
|
||||||
}; |
// const options = {
|
||||||
|
// selectOnLineNumbers: true,
|
||||||
|
// roundedSelection: false,
|
||||||
|
// readOnly: false,
|
||||||
|
// cursorStyle: "line",
|
||||||
|
// automaticLayout: false,
|
||||||
|
// };
|
||||||
|
// return (
|
||||||
|
// <div>
|
||||||
|
// <div>
|
||||||
|
// <button onClick={this.changeEditorValue} type="button">
|
||||||
|
// Change value
|
||||||
|
// </button>
|
||||||
|
// <button onClick={this.changeBySetState} type="button">
|
||||||
|
// Change by setState
|
||||||
|
// </button>
|
||||||
|
// <button onClick={this.setDarkTheme} type="button">
|
||||||
|
// Set dark theme
|
||||||
|
// </button>
|
||||||
|
// <button onClick={this.setLightTheme} type="button">
|
||||||
|
// Set light theme
|
||||||
|
// </button>
|
||||||
|
// </div>
|
||||||
|
// <hr />
|
||||||
|
// <MonacoEditor
|
||||||
|
// height="400"
|
||||||
|
// language="javascript"
|
||||||
|
// value={code}
|
||||||
|
// options={options}
|
||||||
|
// onChange={this.onChange}
|
||||||
|
// editorDidMount={this.editorDidMount}
|
||||||
|
// theme={theme}
|
||||||
|
// />
|
||||||
|
// </div>
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
setLightTheme = () => { |
// const ReactMonacoEditor = () => {
|
||||||
this.setState({ theme: "vs-light" }); |
// return (
|
||||||
}; |
// <div>
|
||||||
|
// <h2>Monaco Editor Sample (controlled mode)</h2>
|
||||||
|
// <CodeEditor />
|
||||||
|
// <hr />
|
||||||
|
// <h2>Another editor (uncontrolled mode)</h2>
|
||||||
|
// {/* <AnotherEditor /> */}
|
||||||
|
// <hr />
|
||||||
|
// <h2>Another editor (showing a diff)</h2>
|
||||||
|
// {/* <DiffEditor /> */}
|
||||||
|
// </div>
|
||||||
|
// );
|
||||||
|
// };
|
||||||
|
|
||||||
render() { |
// export default ReactMonacoEditor;
|
||||||
const { code, theme } = this.state; |
|
||||||
const options = { |
import React from "react"; |
||||||
selectOnLineNumbers: true, |
|
||||||
roundedSelection: false, |
|
||||||
readOnly: false, |
|
||||||
cursorStyle: "line", |
|
||||||
automaticLayout: false, |
|
||||||
}; |
|
||||||
return ( |
|
||||||
<div> |
|
||||||
<div> |
|
||||||
<button onClick={this.changeEditorValue} type="button"> |
|
||||||
Change value |
|
||||||
</button> |
|
||||||
<button onClick={this.changeBySetState} type="button"> |
|
||||||
Change by setState |
|
||||||
</button> |
|
||||||
<button onClick={this.setDarkTheme} type="button"> |
|
||||||
Set dark theme |
|
||||||
</button> |
|
||||||
<button onClick={this.setLightTheme} type="button"> |
|
||||||
Set light theme |
|
||||||
</button> |
|
||||||
</div> |
|
||||||
<hr /> |
|
||||||
<MonacoEditor |
|
||||||
height="400" |
|
||||||
language="javascript" |
|
||||||
value={code} |
|
||||||
options={options} |
|
||||||
onChange={this.onChange} |
|
||||||
editorDidMount={this.editorDidMount} |
|
||||||
theme={theme} |
|
||||||
/> |
|
||||||
</div> |
|
||||||
); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
const ReactMonacoEditor = () => { |
const ReactMonacoEditor = () => { |
||||||
return ( |
return <div>ReactMonacoEditor</div>; |
||||||
<div> |
|
||||||
<h2>Monaco Editor Sample (controlled mode)</h2> |
|
||||||
<CodeEditor /> |
|
||||||
<hr /> |
|
||||||
<h2>Another editor (uncontrolled mode)</h2> |
|
||||||
{/* <AnotherEditor /> */} |
|
||||||
<hr /> |
|
||||||
<h2>Another editor (showing a diff)</h2> |
|
||||||
{/* <DiffEditor /> */} |
|
||||||
</div> |
|
||||||
); |
|
||||||
}; |
}; |
||||||
|
|
||||||
export default ReactMonacoEditor; |
export default ReactMonacoEditor; |
||||||
|
Loading…
Reference in new issue