Cleanup
This commit is contained in:
@@ -29,16 +29,38 @@ abstract class Komponent {
|
|||||||
|
|
||||||
abstract fun render(consumer: KompConsumer): KompElement
|
abstract fun render(consumer: KompConsumer): KompElement
|
||||||
|
|
||||||
open fun refresh() {
|
open fun refresh(forceRefresh: Boolean = false) {
|
||||||
if (!rendered) {
|
if (!rendered || forceRefresh) {
|
||||||
refresh(this)
|
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 {
|
} else {
|
||||||
update()
|
update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun update() {
|
open fun update() {
|
||||||
refresh(this)
|
refresh(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
@@ -118,32 +140,5 @@ abstract class Komponent {
|
|||||||
component.element = element
|
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user