diff --git a/build.gradle.kts b/build.gradle.kts index b5b5683..1a69f7e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ } group = "nl.astraeus" -version = "1.0.6" +version = "1.0.7-SNAPSHOT" repositories { mavenCentral() diff --git a/build.gradle.kts b/build.gradle.kts index b5b5683..1a69f7e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ } group = "nl.astraeus" -version = "1.0.6" +version = "1.0.7-SNAPSHOT" repositories { mavenCentral() diff --git a/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt b/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt index 340314d..2fc7d49 100644 --- a/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt +++ b/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt @@ -127,9 +127,7 @@ name } - if (Komponent.updateMode.isUpdate) { - getKompEvents()[eventName] = event - } + getKompEvents()[eventName] = event this.addEventListener(eventName, event) } diff --git a/build.gradle.kts b/build.gradle.kts index b5b5683..1a69f7e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ } group = "nl.astraeus" -version = "1.0.6" +version = "1.0.7-SNAPSHOT" repositories { mavenCentral() diff --git a/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt b/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt index 340314d..2fc7d49 100644 --- a/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt +++ b/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt @@ -127,9 +127,7 @@ name } - if (Komponent.updateMode.isUpdate) { - getKompEvents()[eventName] = event - } + getKompEvents()[eventName] = event this.addEventListener(eventName, event) } diff --git a/src/jsMain/kotlin/nl/astraeus/komp/HtmlBuilder.kt b/src/jsMain/kotlin/nl/astraeus/komp/HtmlBuilder.kt index 88668fd..a363bbb 100644 --- a/src/jsMain/kotlin/nl/astraeus/komp/HtmlBuilder.kt +++ b/src/jsMain/kotlin/nl/astraeus/komp/HtmlBuilder.kt @@ -1,5 +1,3 @@ -@file:OptIn(ExperimentalStdlibApi::class) - package nl.astraeus.komp import kotlinx.browser.document @@ -55,7 +53,7 @@ return if (this.size < 2) { null } else { - this[this.size-2] + this[this.size - 2] } } @@ -157,13 +155,10 @@ //logReplace"onTagStart, currentElement1.1: $currentNode") currentPosition.currentParent().appendChild(currentNode!!) } else if ( - Komponent.updateMode.isReplace || + !currentNode?.asElement()?.tagName.equals(tag.tagName, true) || ( - !currentNode?.asElement()?.tagName.equals(tag.tagName, true) || - ( - tag.namespace != null && - !currentNode?.asElement()?.namespaceURI.equals(tag.namespace, true) - ) + tag.namespace != null && + !currentNode?.asElement()?.namespaceURI.equals(tag.namespace, true) ) ) { logReplace { "onTagStart, currentElement, namespace: ${currentNode?.asElement()?.namespaceURI} -> ${tag.namespace}" } @@ -186,22 +181,16 @@ root = currentNode as Element } - if (Komponent.updateMode.isUpdate) { - currentElement?.clearKompEvents() - (currentElement as? HTMLInputElement)?.checked = false - } + currentElement?.clearKompEvents() + (currentElement as? HTMLInputElement)?.checked = false currentPosition.lastOrNull()?.setAttr?.clear() + + // if currentElement = checkbox make sure it's cleared for (entry in tag.attributesEntries) { currentElement!!.setKompAttribute(entry.key, entry.value) currentPosition.lastOrNull()?.setAttr?.add(entry.key) } - - if (tag.namespace != null && Komponent.updateMode.isReplace) { - //logReplace"onTagStart, same node type") - - (currentNode as? Element)?.innerHTML = "" - } } currentPosition.push(currentNode!!) diff --git a/build.gradle.kts b/build.gradle.kts index b5b5683..1a69f7e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ } group = "nl.astraeus" -version = "1.0.6" +version = "1.0.7-SNAPSHOT" repositories { mavenCentral() diff --git a/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt b/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt index 340314d..2fc7d49 100644 --- a/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt +++ b/src/jsMain/kotlin/nl/astraeus/komp/ElementExtentions.kt @@ -127,9 +127,7 @@ name } - if (Komponent.updateMode.isUpdate) { - getKompEvents()[eventName] = event - } + getKompEvents()[eventName] = event this.addEventListener(eventName, event) } diff --git a/src/jsMain/kotlin/nl/astraeus/komp/HtmlBuilder.kt b/src/jsMain/kotlin/nl/astraeus/komp/HtmlBuilder.kt index 88668fd..a363bbb 100644 --- a/src/jsMain/kotlin/nl/astraeus/komp/HtmlBuilder.kt +++ b/src/jsMain/kotlin/nl/astraeus/komp/HtmlBuilder.kt @@ -1,5 +1,3 @@ -@file:OptIn(ExperimentalStdlibApi::class) - package nl.astraeus.komp import kotlinx.browser.document @@ -55,7 +53,7 @@ return if (this.size < 2) { null } else { - this[this.size-2] + this[this.size - 2] } } @@ -157,13 +155,10 @@ //logReplace"onTagStart, currentElement1.1: $currentNode") currentPosition.currentParent().appendChild(currentNode!!) } else if ( - Komponent.updateMode.isReplace || + !currentNode?.asElement()?.tagName.equals(tag.tagName, true) || ( - !currentNode?.asElement()?.tagName.equals(tag.tagName, true) || - ( - tag.namespace != null && - !currentNode?.asElement()?.namespaceURI.equals(tag.namespace, true) - ) + tag.namespace != null && + !currentNode?.asElement()?.namespaceURI.equals(tag.namespace, true) ) ) { logReplace { "onTagStart, currentElement, namespace: ${currentNode?.asElement()?.namespaceURI} -> ${tag.namespace}" } @@ -186,22 +181,16 @@ root = currentNode as Element } - if (Komponent.updateMode.isUpdate) { - currentElement?.clearKompEvents() - (currentElement as? HTMLInputElement)?.checked = false - } + currentElement?.clearKompEvents() + (currentElement as? HTMLInputElement)?.checked = false currentPosition.lastOrNull()?.setAttr?.clear() + + // if currentElement = checkbox make sure it's cleared for (entry in tag.attributesEntries) { currentElement!!.setKompAttribute(entry.key, entry.value) currentPosition.lastOrNull()?.setAttr?.add(entry.key) } - - if (tag.namespace != null && Komponent.updateMode.isReplace) { - //logReplace"onTagStart, same node type") - - (currentNode as? Element)?.innerHTML = "" - } } currentPosition.push(currentNode!!) diff --git a/src/jsMain/kotlin/nl/astraeus/komp/Komponent.kt b/src/jsMain/kotlin/nl/astraeus/komp/Komponent.kt index f52bf4c..56f1e43 100644 --- a/src/jsMain/kotlin/nl/astraeus/komp/Komponent.kt +++ b/src/jsMain/kotlin/nl/astraeus/komp/Komponent.kt @@ -7,6 +7,7 @@ import org.w3c.dom.get private var currentKomponent: Komponent? = null + fun FlowOrMetaDataOrPhrasingContent.currentKomponent(): Komponent = currentKomponent ?: error("No current komponent defined! Only call from render code!") @@ -16,15 +17,6 @@ UNSAFE_SVG_ONLY } -enum class UpdateMode { - REPLACE, - UPDATE, - ; - - val isReplace: Boolean get() { return this == REPLACE } - val isUpdate: Boolean get() { return this == UPDATE } -} - var Element.memoizeHash: String? get() { return getAttribute("memoize-hash") @@ -185,7 +177,6 @@ var logRenderEvent = false var logReplaceEvent = false var enableAssertions = false - var updateMode = UpdateMode.UPDATE var unsafeMode = UnsafeMode.UNSAFE_DISABLED fun create(parent: HTMLElement, component: Komponent) {