1
+ import org.w3c.dom.HTMLFormElement
1
2
import react.*
2
- import react.dom.*
3
- import kotlinx.html.js.*
4
- import kotlinx.html.InputType
5
- import org.w3c.dom.events.Event
6
3
import org.w3c.dom.HTMLInputElement
4
+ import react.dom.events.ChangeEventHandler
5
+ import react.dom.events.FormEventHandler
6
+ import react.dom.html.InputType
7
+ import react.dom.html.ReactHTML.form
8
+ import react.dom.html.ReactHTML.input
7
9
8
10
external interface InputProps : Props {
9
11
var onSubmit: (String ) -> Unit
10
12
}
11
13
12
- val inputComponent = fc <InputProps > { props ->
14
+ val InputComponent = FC <InputProps > { props ->
13
15
val (text, setText) = useState(" " )
14
16
15
- val submitHandler: ( Event ) -> Unit = {
17
+ val submitHandler: FormEventHandler < HTMLFormElement > = {
16
18
it.preventDefault()
17
19
setText(" " )
18
20
props.onSubmit(text)
19
21
}
20
22
21
- val changeHandler: (Event ) -> Unit = {
22
- val value = (it.target as HTMLInputElement ).value
23
- setText(value)
23
+ val changeHandler: ChangeEventHandler <HTMLInputElement > = {
24
+ setText(it.target.value)
24
25
}
25
26
26
27
form {
27
- attrs.onSubmitFunction = submitHandler
28
- input(InputType .text) {
29
- attrs.onChangeFunction = changeHandler
30
- attrs.value = text
28
+ onSubmit = submitHandler
29
+ input {
30
+ type = InputType .text
31
+ onChange = changeHandler
32
+ value = text
31
33
}
32
34
}
33
35
}
0 commit comments