element-x-ada/tools/templates/files/fileTemplates/Template Presentation Classes.kt.child.1.kt
renovate[bot] c1cd259ce7 Update metro to v0.6.7 (#5416)
* Update metro to v0.6.7

* Replace `@Inject` with `@AssistedInject` where needed

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2025-09-26 08:16:36 +00:00

30 lines
912 B
Kotlin

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME}#end
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin
import dev.zacsweers.metro.Assisted
import dev.zacsweers.metro.AssistedInject
import io.element.android.annotations.ContributesNode
import dev.zacsweers.metro.AppScope
// CHANGE THE SCOPE
@ContributesNode(AppScope::class)
@AssistedInject
class ${NAME}Node(
@Assisted buildContext: BuildContext,
@Assisted plugins: List<Plugin>,
private val presenter: ${NAME}Presenter,
) : Node(buildContext, plugins = plugins) {
@Composable
override fun View(modifier: Modifier) {
val state = presenter.present()
${NAME}View(
state = state,
modifier = modifier
)
}
}