11import { useEffect , useState } from 'react' ;
22import { useLocation , Link } from 'react-router-dom' ;
33import Split from '@uiw/react-split' ;
4+ import CodeEditor from '@uiw/react-textarea-code-editor' ;
45import Tag from './Tag' ;
56import RunWeb from '../../../' ;
6- import TextareaEditor from './Textarea' ;
77import styles from './index.module.less' ;
8- import './language.less' ;
98
109function useQuery ( ) {
1110 return new URLSearchParams ( useLocation ( ) . search ) ;
@@ -48,18 +47,15 @@ export default function Run() {
4847 < Split lineBar mode = "vertical" style = { { minWidth : 120 , width : '43%' } } >
4948 < div style = { { height : '40%' } } className = { styles . editor } >
5049 < Tag color = "#f44336" > HTML</ Tag >
51- < TextareaEditor
52- value = { htmlStr }
53- language = "html"
54- className = { htmlStr ? '' : 'empty' }
55- placeholder = "Please enter HTML code."
56- onPaste = { ( event ) => {
57- let paste = ( event . clipboardData || ( window as any ) . clipboardData ) . getData ( 'text' ) ;
58- setHtmlStr ( paste . replace ( / ^ \n + / g, '' ) . replace ( / \n + $ / g, '' ) ) ;
59- event . preventDefault ( ) ;
60- } }
61- onChange = { ( evn ) => setHtmlStr ( evn . target . value ) }
62- />
50+ < div className = { styles . editorCode } >
51+ < CodeEditor
52+ value = { htmlStr }
53+ style = { { minHeight : '100%' } }
54+ placeholder = "Please enter HTML code."
55+ onChange = { ( evn ) => setHtmlStr ( evn . target . value ) }
56+ language = "html"
57+ />
58+ </ div >
6359 </ div >
6460 < div
6561 style = { {
@@ -69,18 +65,15 @@ export default function Run() {
6965 className = { styles . editor }
7066 >
7167 < Tag color = "#f7ac09" > JS</ Tag >
72- < TextareaEditor
73- value = { jsStr }
74- language = "js"
75- className = { jsStr ? '' : 'empty' }
76- placeholder = "Please enter JavaScript code."
77- onPaste = { ( event ) => {
78- let paste = ( event . clipboardData || ( window as any ) . clipboardData ) . getData ( 'text' ) ;
79- setJsStr ( paste . replace ( / ^ \n + / g, '' ) . replace ( / \n + $ / g, '' ) ) ;
80- event . preventDefault ( ) ;
81- } }
82- onChange = { ( evn ) => setJsStr ( evn . target . value ) }
83- />
68+ < div className = { styles . editorCode } >
69+ < CodeEditor
70+ value = { jsStr }
71+ style = { { minHeight : '100%' } }
72+ placeholder = "Please enter JavaScript code."
73+ onChange = { ( evn ) => setJsStr ( evn . target . value ) }
74+ language = "js"
75+ />
76+ </ div >
8477 </ div >
8578 < div
8679 style = { {
@@ -90,19 +83,15 @@ export default function Run() {
9083 className = { styles . editor }
9184 >
9285 < Tag color = "#004fd4" > CSS</ Tag >
93- < TextareaEditor
94- value = { cssStr }
95- language = "css"
96- className = { cssStr ? '' : 'empty' }
97- placeholder = "Please enter CSS code."
98- onPasteCapture = { ( event ) => {
99- let paste = ( event . clipboardData || ( window as any ) . clipboardData ) . getData ( 'text' ) ;
100- paste = paste . replace ( / ^ \n + / g, '' ) . replace ( / \n + $ / g, '' ) ;
101- setCssStr ( paste ) ;
102- event . preventDefault ( ) ;
103- } }
104- onChange = { ( evn ) => setCssStr ( evn . target . value ) }
105- />
86+ < div className = { styles . editorCode } >
87+ < CodeEditor
88+ value = { cssStr }
89+ style = { { minHeight : '100%' } }
90+ placeholder = "Please enter CSS code."
91+ onChange = { ( evn ) => setCssStr ( evn . target . value ) }
92+ language = "css"
93+ />
94+ </ div >
10695 </ div >
10796 </ Split >
10897 < div style = { { minWidth : 120 , flex : 1 } } >
0 commit comments