@@ -3,27 +3,35 @@ import { Value, List } from '@solid/react';
3
3
import './Playground.css' ;
4
4
5
5
export default class Playground extends React . Component {
6
- state = { expression : this . props . expression } ;
6
+ state = {
7
+ input : this . props . expression ,
8
+ expression : this . props . expression ,
9
+ } ;
7
10
8
11
componentDidUpdate ( { expression } ) {
9
12
if ( this . props . expression !== expression )
10
13
this . setState ( { expression : this . props . expression } ) ;
11
14
}
12
15
13
- onExpressionChanged ( { target : { value : expression } } ) {
16
+ onChangeInput = event => {
17
+ this . setState ( { input : event . target . value } ) ;
18
+ }
19
+
20
+ onSubmitInput = event => {
21
+ const expression = this . state . input ;
14
22
this . setState ( { expression } ) ;
15
23
if ( this . props . onExpressionChange )
16
24
this . props . onExpressionChange ( expression ) ;
17
25
}
18
26
19
27
render ( ) {
20
- const { expression } = this . state ;
28
+ const { input , expression } = this . state ;
21
29
return (
22
- < div className = "playground" >
30
+ < form className = "playground" onSubmit = { this . onSubmitInput } >
23
31
< p className = "expression" >
24
32
< label > < code > solid.data</ code > </ label >
25
- < input value = { expression }
26
- onChange = { e => this . onExpressionChanged ( e ) } / >
33
+ < input value = { input } onChange = { this . onChangeInput } required />
34
+ < button > Execute </ button >
27
35
</ p >
28
36
< h3 > Single result</ h3 >
29
37
< p className = "single" > < Value src = { expression } /> </ p >
@@ -33,7 +41,7 @@ export default class Playground extends React.Component {
33
41
< pre className = "sparql" > < code >
34
42
< Value src = { expression && `${ expression } .sparql` } />
35
43
</ code > </ pre >
36
- </ div >
44
+ </ form >
37
45
) ;
38
46
}
39
47
}
0 commit comments