Add WASM support and optimize event handling
This commit is contained in:
@@ -133,15 +133,10 @@ internal fun Element.setKompEvent(name: String, event: (Event) -> Unit) {
|
||||
this.addEventListener(eventName, event)
|
||||
}
|
||||
|
||||
private val kompEvents = mutableMapOf<Element, MutableMap<String, (Event) -> Unit>>()
|
||||
|
||||
internal fun Element.getKompEvents(): MutableMap<String, (Event) -> Unit> {
|
||||
var result: MutableMap<String, (Event) -> Unit>? = this.asDynamic()["komp-events"] as MutableMap<String, (Event) -> Unit>?
|
||||
|
||||
if (result == null) {
|
||||
result = mutableMapOf()
|
||||
this.asDynamic()["komp-events"] = result
|
||||
}
|
||||
|
||||
return result
|
||||
return kompEvents.getOrPut(this) { mutableMapOf() }
|
||||
}
|
||||
|
||||
internal fun Element.findElementIndex(): Int {
|
||||
|
||||
@@ -200,7 +200,7 @@ class HtmlBuilder(
|
||||
checkTag("onTagEvent", tag)
|
||||
}
|
||||
|
||||
currentElement?.setKompEvent(event.lowercase(), value.asDynamic())
|
||||
currentElement?.setKompEvent(event.lowercase(), value)
|
||||
}
|
||||
|
||||
override fun onTagEnd(tag: Tag) {
|
||||
@@ -327,9 +327,7 @@ class HtmlBuilder(
|
||||
namespace == "http://www.w3.org/2000/svg"
|
||||
)
|
||||
) {
|
||||
if (currentElement?.innerHTML != textContent) {
|
||||
currentElement?.innerHTML += textContent
|
||||
}
|
||||
currentElement?.innerHTML += textContent.trim()
|
||||
} else if (currentElement?.textContent != textContent) {
|
||||
currentElement?.textContent = textContent
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ abstract class Komponent {
|
||||
scheduledForUpdate.add(komponent)
|
||||
|
||||
if (updateCallback == null) {
|
||||
window.setTimeout({
|
||||
updateCallback = window.setTimeout({
|
||||
runUpdate()
|
||||
}, 0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user