editor.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import Langs from "./select";
  2. import AceEditor from "react-ace";
  3. import "ace-builds/src-noconflict/mode-html";
  4. import "ace-builds/src-noconflict/mode-css";
  5. import "ace-builds/src-noconflict/mode-javascript";
  6. import "ace-builds/src-noconflict/mode-java";
  7. import "ace-builds/src-noconflict/mode-python";
  8. import "ace-builds/src-noconflict/mode-xml";
  9. import "ace-builds/src-noconflict/mode-sass";
  10. import "ace-builds/src-noconflict/mode-ruby";
  11. import "ace-builds/src-noconflict/mode-markdown";
  12. import "ace-builds/src-noconflict/mode-mysql";
  13. import "ace-builds/src-noconflict/mode-json";
  14. import "ace-builds/src-noconflict/mode-handlebars";
  15. import "ace-builds/src-noconflict/mode-golang";
  16. import "ace-builds/src-noconflict/mode-csharp";
  17. import "ace-builds/src-noconflict/mode-elixir";
  18. import "ace-builds/src-noconflict/mode-typescript";
  19. import "ace-builds/src-noconflict/theme-monokai";
  20. import "ace-builds/src-noconflict/ext-language_tools";
  21. import"ace-builds/src-noconflict/snippets/javascript";
  22. import"ace-builds/src-noconflict/snippets/html";
  23. import"ace-builds/src-noconflict/snippets/css";
  24. import"ace-builds/src-noconflict/snippets/json";
  25. import"ace-builds/src-noconflict/worker-javascript";
  26. import"ace-builds/src-noconflict/worker-html";
  27. import"ace-builds/src-noconflict/worker-css";
  28. const Editor = ({data = {type: "html", text: "", name: ""}, onChange, onDelete}) => {
  29. return (
  30. <div style={{display: "inline-block", width: "calc(95%/3)", marginBottom: "10px", marginTop: "40px", backgroundColor: "#FFE8DB", marginLeft:"1%", border:"1px solid #FF5A00", borderRadius: "30px 15px 90px 15px"}}>
  31. <button type="button" className="close mr-4 " aria-label="Close" onClick={onDelete} style={{fontSize:"40px", backgroundColor:"black"}}>
  32. <span className="text-danger" aria-hidden="true">
  33. &times;
  34. </span>
  35. </button>
  36. <AceEditor className="editor" width="calc(100%)" height="300px" value={data.text} onChange={(text) => onChange({type: data.type, text, name: data.name })}
  37. placeholder="Your Code" mode={data.type} theme="monokai" name="blah2" fontSize={13} showPrintMargin={true}
  38. showGutter={true} highlightActiveLine={true} wrapEnabled={true} enableBasicAutocompletion={true} enableLiveAutocompletion={true}
  39. enableSnippets={true} showLineNumbers={true}/>
  40. <br/>
  41. <div className="input-group ml-4" style={{paddingBottom: "10px"}}>
  42. <div className="input-group-prepend">
  43. <span className="input-group-text" id="basic-addon1">Name of file</span>
  44. </div>
  45. <input type="text" className="form-control w-25" placeholder="Name of file" aria-label="Name of file"
  46. aria-describedby="basic-addon1" value={data.name} onChange={(e) => onChange({type: data.type, text: data.text, name: e.target.value })}/>
  47. <Langs onChange={(type)=> onChange({type, text: data.text, name: data.name})} value={data.type}/>{" "}
  48. </div>
  49. </div>
  50. );
  51. };
  52. export default Editor;