Skip to content

Commit 1b1e972

Browse files
committed
Add Widget extension functions for change and input events
1 parent dc37578 commit 1b1e972

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/main/kotlin/io/kvision/core/Widget.kt

+23
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import io.kvision.utils.*
3535
import org.w3c.dom.CustomEventInit
3636
import org.w3c.dom.DragEvent
3737
import org.w3c.dom.HTMLElement
38+
import org.w3c.dom.events.Event
3839
import org.w3c.dom.events.MouseEvent
3940
import kotlin.reflect.KProperty
4041

@@ -836,3 +837,25 @@ inline fun <reified T : Widget> T.onClick(noinline handler: T.(MouseEvent) -> Un
836837
}
837838
}
838839
}
840+
841+
/**
842+
* An extension function for defining on change event handlers.
843+
*/
844+
inline fun <reified T : Widget> T.onChange(noinline handler: T.(Event) -> Unit): Int {
845+
return this.setEventListener<T> {
846+
change = { e ->
847+
self.handler(e)
848+
}
849+
}
850+
}
851+
852+
/**
853+
* An extension function for defining on change event handlers.
854+
*/
855+
inline fun <reified T : Widget> T.onInput(noinline handler: T.(Event) -> Unit): Int {
856+
return this.setEventListener<T> {
857+
input = { e ->
858+
self.handler(e)
859+
}
860+
}
861+
}

0 commit comments

Comments
 (0)