1+ import org.w3c.dom.HTMLFormElement
12import react.*
2- import react.dom.*
3- import kotlinx.html.js.*
4- import kotlinx.html.InputType
5- import org.w3c.dom.events.Event
63import 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
79
810external interface InputProps : Props {
911 var onSubmit: (String ) -> Unit
1012}
1113
12- val inputComponent = fc <InputProps > { props ->
14+ val InputComponent = FC <InputProps > { props ->
1315 val (text, setText) = useState(" " )
1416
15- val submitHandler: ( Event ) -> Unit = {
17+ val submitHandler: FormEventHandler < HTMLFormElement > = {
1618 it.preventDefault()
1719 setText(" " )
1820 props.onSubmit(text)
1921 }
2022
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)
2425 }
2526
2627 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
3133 }
3234 }
3335}
0 commit comments