diff --git a/web/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Base.kt b/web/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Base.kt index 3c579d560a..0cebc82819 100644 --- a/web/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Base.kt +++ b/web/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Base.kt @@ -15,15 +15,17 @@ import org.w3c.dom.svg.SVGElement @Composable @ExplicitGroupsComposable -private fun ComposeDomNode( - factory: () -> T, +private inline fun ComposeDomNode( + crossinline factory: () -> T, elementScope: TScope, attrsSkippableUpdate: @Composable SkippableUpdater.() -> Unit, - content: (@Composable TScope.() -> Unit)? + content: (@Composable TScope.() -> Unit) ) { currentComposer.startNode() if (currentComposer.inserting) { - currentComposer.createNode(factory) + currentComposer.createNode { + factory() + } } else { currentComposer.useNode() } @@ -31,7 +33,7 @@ private fun ComposeDomNode( attrsSkippableUpdate.invoke(SkippableUpdater(currentComposer)) currentComposer.startReplaceableGroup(0x7ab4aae9) - content?.invoke(elementScope) + content.invoke(elementScope) currentComposer.endReplaceableGroup() currentComposer.endNode() } @@ -134,7 +136,9 @@ fun TagElement( } }, elementScope = scope, - content = content + content = { + content?.invoke(this) + } ) refEffect?.let { effect ->