This commit is contained in:
2019-05-27 20:41:36 +02:00
parent b5f8cb6023
commit b697303009

View File

@@ -29,16 +29,38 @@ abstract class Komponent {
abstract fun render(consumer: KompConsumer): KompElement
open fun refresh() {
if (!rendered) {
refresh(this)
open fun refresh(forceRefresh: Boolean = false) {
if (!rendered || forceRefresh) {
element?.let { element ->
if (logRenderEvent) {
console.log("Rendering", this)
}
val newElement = create()
val replacedElement = if (updateStrategy == UpdateStrategy.REPLACE) {
//val replacedElement = replaceNode(newElement, element)
replaceNode(newElement, element)
} else if (kompElement != null) {
kompElement?.let {
DomDiffer.replaceDiff(it, newElement, element)
}
} else {
newElement.create()
}
kompElement = newElement
this.element = replacedElement
rendered = true
}
} else {
update()
}
}
open fun update() {
refresh(this)
refresh(true)
}
override fun equals(other: Any?): Boolean {
@@ -118,32 +140,5 @@ abstract class Komponent {
component.element = element
}
}
fun refresh(komponent: Komponent) {
komponent.element?.let { element ->
if (logRenderEvent) {
console.log("Rendering", komponent)
}
//val parent = element.parentElement
val newElement = komponent.create()
val kompElement = komponent.kompElement
val replacedElement = if (updateStrategy == UpdateStrategy.REPLACE) {
//val replacedElement = replaceNode(newElement, element)
replaceNode(newElement, element)
} else if (kompElement != null) {
DomDiffer.replaceDiff(kompElement, newElement, element)
} else {
newElement.create()
}
komponent.kompElement = newElement
komponent.element = replacedElement
komponent.rendered = true
}
}
}
}