Browse Source

web: Remove deprecated input event listeners (#861)

Co-authored-by: Oleksandr Karpovich <oleksandr.karpovich@jetbrains.com>
pull/864/head
Oleksandr Karpovich 3 years ago committed by GitHub
parent
commit
8edc12f02a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      web/benchmark-core/src/jsMain/kotlin/com/sample/content/CodeSamplesSwitcher.kt
  2. 53
      web/core/src/jsMain/kotlin/androidx/compose/web/attributes/InputAttrsBuilder.kt
  3. 13
      web/core/src/jsMain/kotlin/androidx/compose/web/attributes/TextAreaAttrsBuilder.kt
  4. 6
      web/integration-core/src/jsMain/kotlin/androidx/compose/web/sample/CodeSnippetSamples.kt
  5. 16
      web/integration-core/src/jsMain/kotlin/androidx/compose/web/sample/Sample.kt
  6. 5
      web/widgets/src/jsMain/kotlin/layouts/slider.kt

2
web/benchmark-core/src/jsMain/kotlin/com/sample/content/CodeSamplesSwitcher.kt

@ -75,7 +75,7 @@ fun CodeSampleSwitcher(count: Int, current: Int, onSelect: (Int) -> Unit) {
value("snippet$ix") value("snippet$ix")
id("snippet$ix") id("snippet$ix")
if (current == ix) checked() if (current == ix) checked()
onRadioInput { onSelect(ix) } onInput { onSelect(ix) }
}) })
Label(forId = "snippet$ix") { Text("${ix + 1}") } Label(forId = "snippet$ix") { Text("${ix + 1}") }
} }

53
web/core/src/jsMain/kotlin/androidx/compose/web/attributes/InputAttrsBuilder.kt

@ -5,11 +5,9 @@
package androidx.compose.web.attributes package androidx.compose.web.attributes
import org.jetbrains.compose.web.attributes.* import org.jetbrains.compose.web.attributes.AttrsBuilder
import org.jetbrains.compose.web.events.GenericWrappedEvent import org.jetbrains.compose.web.attributes.InputType
import org.jetbrains.compose.web.events.WrappedCheckBoxInputEvent import org.jetbrains.compose.web.attributes.Options
import org.jetbrains.compose.web.events.WrappedRadioInputEvent
import org.jetbrains.compose.web.events.WrappedTextInputEvent
import org.w3c.dom.HTMLElement import org.w3c.dom.HTMLElement
import org.w3c.dom.HTMLInputElement import org.w3c.dom.HTMLInputElement
import org.w3c.dom.events.Event import org.w3c.dom.events.Event
@ -45,49 +43,4 @@ class InputAttrsBuilder<T>(val inputType: InputType<T>) : AttrsBuilder<HTMLInput
listener(SyntheticInputEvent(value, it.nativeEvent.target as HTMLInputElement, it.nativeEvent)) listener(SyntheticInputEvent(value, it.nativeEvent.target as HTMLInputElement, it.nativeEvent))
} }
} }
@Deprecated(
message = "It's not reliable as it can be applied to any input type.",
replaceWith = ReplaceWith("onInput(options, listener)"),
level = DeprecationLevel.WARNING
)
fun onTextInput(options: Options = Options.DEFAULT, listener: (WrappedTextInputEvent) -> Unit) {
listeners.add(TextInputEventListener(options, listener))
}
@Deprecated(
message = "It's not reliable as it can be applied to any input type.",
replaceWith = ReplaceWith("onInput(options, listener)"),
level = DeprecationLevel.WARNING
)
fun onCheckboxInput(
options: Options = Options.DEFAULT,
listener: (WrappedCheckBoxInputEvent) -> Unit
) {
listeners.add(CheckBoxInputEventListener(options, listener))
}
@Deprecated(
message = "It's not reliable as it can be applied to any input type.",
replaceWith = ReplaceWith("onInput(options, listener)"),
level = DeprecationLevel.WARNING
)
fun onRadioInput(
options: Options = Options.DEFAULT,
listener: (WrappedRadioInputEvent) -> Unit
) {
listeners.add(RadioInputEventListener(options, listener))
}
@Deprecated(
message = "It's not reliable as it can be applied to any input type.",
replaceWith = ReplaceWith("onInput(options, listener)"),
level = DeprecationLevel.WARNING
)
fun onRangeInput(
options: Options = Options.DEFAULT,
listener: (GenericWrappedEvent<*>) -> Unit
) {
listeners.add(WrappedEventListener(INPUT, options, listener))
}
} }

13
web/core/src/jsMain/kotlin/androidx/compose/web/attributes/TextAreaAttrsBuilder.kt

@ -5,8 +5,8 @@
package androidx.compose.web.attributes package androidx.compose.web.attributes
import org.jetbrains.compose.web.attributes.* import org.jetbrains.compose.web.attributes.AttrsBuilder
import org.jetbrains.compose.web.events.WrappedTextInputEvent import org.jetbrains.compose.web.attributes.Options
import org.w3c.dom.HTMLTextAreaElement import org.w3c.dom.HTMLTextAreaElement
class TextAreaAttrsBuilder : AttrsBuilder<HTMLTextAreaElement>() { class TextAreaAttrsBuilder : AttrsBuilder<HTMLTextAreaElement>() {
@ -20,13 +20,4 @@ class TextAreaAttrsBuilder : AttrsBuilder<HTMLTextAreaElement>() {
listener(SyntheticInputEvent(text, it.nativeEvent.target as HTMLTextAreaElement, it.nativeEvent)) listener(SyntheticInputEvent(text, it.nativeEvent.target as HTMLTextAreaElement, it.nativeEvent))
} }
} }
@Deprecated(
message = "It's not reliable as it can be applied to any input type.",
replaceWith = ReplaceWith("onInput(options, listener)"),
level = DeprecationLevel.WARNING
)
fun onTextInput(options: Options = Options.DEFAULT, listener: (WrappedTextInputEvent) -> Unit) {
listeners.add(TextInputEventListener(options, listener))
}
} }

6
web/integration-core/src/jsMain/kotlin/androidx/compose/web/sample/CodeSnippetSamples.kt

@ -33,7 +33,7 @@ fun KotlinCodeSnippets() {
type = InputType.Radio, type = InputType.Radio,
attrs = { attrs = {
name("code-snippet") name("code-snippet")
onRadioInput { onInput {
currentSnippet.value = """ currentSnippet.value = """
/* Adds two integers */ /* Adds two integers */
fun add(i: Int, j: Int): Int { fun add(i: Int, j: Int): Int {
@ -47,7 +47,7 @@ fun KotlinCodeSnippets() {
type = InputType.Radio, type = InputType.Radio,
attrs = { attrs = {
name("code-snippet") name("code-snippet")
onRadioInput { onInput {
currentSnippet.value = """ currentSnippet.value = """
/* Does some calculations */ /* Does some calculations */
fun calculate(i: Int, j: Int): Int { fun calculate(i: Int, j: Int): Int {
@ -80,4 +80,4 @@ fun CodeSnippet(code: String, language: String = "kotlin") {
private fun HTMLElement.setHighlightedCode(code: String) { private fun HTMLElement.setHighlightedCode(code: String) {
innerText = code innerText = code
HighlightJs.highlightElement(this) HighlightJs.highlightElement(this)
} }

16
web/integration-core/src/jsMain/kotlin/androidx/compose/web/sample/Sample.kt

@ -272,8 +272,8 @@ fun MyInputComponent(text: State<String>, onChange: (String) -> Unit) {
onKeyDown { onKeyDown {
println("On keyDown key = : ${it.getNormalizedKey()}") println("On keyDown key = : ${it.getNormalizedKey()}")
} }
onTextInput { onInput {
onChange(it.inputValue) onChange(it.value)
} }
onKeyUp { onKeyUp {
println("On keyUp key = : ${it.getNormalizedKey()}") println("On keyUp key = : ${it.getNormalizedKey()}")
@ -283,8 +283,8 @@ fun MyInputComponent(text: State<String>, onChange: (String) -> Unit) {
} }
Div { Div {
Input(type = InputType.Checkbox, attrs = { Input(type = InputType.Checkbox, attrs = {
onCheckboxInput { onInput {
println("From div - Checked: " + it.checked) println("From div - Checked: " + it.value)
} }
}) })
Input(type = InputType.Text, attrs = { Input(type = InputType.Text, attrs = {
@ -295,8 +295,8 @@ fun MyInputComponent(text: State<String>, onChange: (String) -> Unit) {
Input( Input(
type = InputType.Radio, type = InputType.Radio,
attrs = { attrs = {
onRadioInput { onInput {
println("Radio 1 - Checked: " + it.checked) println("Radio 1 - Checked: " + it.value)
} }
name("f1") name("f1")
} }
@ -304,8 +304,8 @@ fun MyInputComponent(text: State<String>, onChange: (String) -> Unit) {
Input( Input(
type = InputType.Radio, type = InputType.Radio,
attrs = { attrs = {
onRadioInput { onInput {
println("Radio 2 - Checked: " + it.checked) println("Radio 2 - Checked: " + it.value)
} }
name("f1") name("f1")
} }

5
web/widgets/src/jsMain/kotlin/layouts/slider.kt

@ -24,9 +24,8 @@ actual fun SliderActual(
attr("min", valueRange.start.toString()) attr("min", valueRange.start.toString())
attr("max", valueRange.endInclusive.toString()) attr("max", valueRange.endInclusive.toString())
attr("step", step.toString()) attr("step", step.toString())
onRangeInput { onInput {
val value: String = it.nativeEvent.target.asDynamic().value onValueChange(it.value?.toFloat() ?: 0f)
onValueChange(value.toFloat())
} }
} }
) )

Loading…
Cancel
Save