Version 1.2.4
Some checks are pending
Gradle CI / build (push) Waiting to run

Add WASM support and optimize event handling
This commit is contained in:
2024-10-23 15:35:05 +02:00
parent a5b938aa27
commit a1021e5cda
11 changed files with 1075 additions and 28 deletions

View File

@@ -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 {

View File

@@ -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
}

View File

@@ -214,7 +214,7 @@ abstract class Komponent {
scheduledForUpdate.add(komponent)
if (updateCallback == null) {
window.setTimeout({
updateCallback = window.setTimeout({
runUpdate()
}, 0)
}