diff --git a/blueprints/list-detail/buildSrc/src/main/kotlin/software/ralf/app/platform/listdetail/gradle/Platform.kt b/blueprints/list-detail/buildSrc/src/main/kotlin/software/ralf/app/platform/listdetail/gradle/Platform.kt index 1bc023b8..8ef7a6d2 100644 --- a/blueprints/list-detail/buildSrc/src/main/kotlin/software/ralf/app/platform/listdetail/gradle/Platform.kt +++ b/blueprints/list-detail/buildSrc/src/main/kotlin/software/ralf/app/platform/listdetail/gradle/Platform.kt @@ -122,10 +122,10 @@ internal sealed interface Platform { } } } + } - if (project.path == ":app:web") { - binaries.executable() - } + project.plugins.withId(Plugins.COMPOSE_MULTIPLATFORM) { + project.kmpExtension.wasmJs { binaries.executable() } } } } diff --git a/blueprints/list-detail/gradle/libs.versions.toml b/blueprints/list-detail/gradle/libs.versions.toml index bcdef671..060536aa 100644 --- a/blueprints/list-detail/gradle/libs.versions.toml +++ b/blueprints/list-detail/gradle/libs.versions.toml @@ -8,13 +8,13 @@ androidx-test-junit = "1.3.0" androidx-test-orchestrator = "1.6.1" androidx-test-rules = "1.7.0" androidx-test-runner = "1.7.0" -app-platform = "0.1.3" +app-platform = "0.1.4" assertk = "0.28.1" -compose-android = "1.11.4" +compose-android = "1.12.0" compose-material-icons = "1.7.3" compose-material3 = "1.9.0" compose-hot-reload = "1.2.0" -compose-multiplatform = "1.11.1" +compose-multiplatform = "1.12.0" coroutines = "1.11.0" detekt = "2.0.0-alpha.5" jvm-buildsrc = "21" diff --git a/blueprints/list-detail/templates/public/src/commonMain/kotlin/software/ralf/app/platform/listdetail/templates/AppTemplatePresenter.kt b/blueprints/list-detail/templates/public/src/commonMain/kotlin/software/ralf/app/platform/listdetail/templates/AppTemplatePresenter.kt index b72f46b0..bdf616e9 100644 --- a/blueprints/list-detail/templates/public/src/commonMain/kotlin/software/ralf/app/platform/listdetail/templates/AppTemplatePresenter.kt +++ b/blueprints/list-detail/templates/public/src/commonMain/kotlin/software/ralf/app/platform/listdetail/templates/AppTemplatePresenter.kt @@ -1,13 +1,13 @@ package software.ralf.app.platform.listdetail.templates import androidx.compose.runtime.Composable +import androidx.compose.runtime.withCompositionLocal import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedFactory import dev.zacsweers.metro.AssistedInject import software.ralf.app.platform.presenter.molecule.MoleculePresenter import software.ralf.app.platform.presenter.molecule.backgesture.BackGestureDispatcherPresenter import software.ralf.app.platform.presenter.molecule.backgesture.LocalBackGestureDispatcherPresenter -import software.ralf.app.platform.presenter.molecule.returningCompositionLocalProvider /** * Adapts a root feature presenter into the application template stream. @@ -22,7 +22,7 @@ class AppTemplatePresenter( ) : MoleculePresenter { @Composable override fun present(input: Unit): AppTemplate { - return returningCompositionLocalProvider( + return withCompositionLocal( LocalBackGestureDispatcherPresenter provides backGestureDispatcherPresenter ) { rootPresenter.present(Unit).toAppTemplate() diff --git a/blueprints/starter/app-framework/impl/build.gradle.kts b/blueprints/starter/app-framework/impl/build.gradle.kts index 4991eb19..6ae1d64d 100644 --- a/blueprints/starter/app-framework/impl/build.gradle.kts +++ b/blueprints/starter/app-framework/impl/build.gradle.kts @@ -56,6 +56,8 @@ kotlin { } wasmJs { + binaries.executable() + browser() } diff --git a/blueprints/starter/gradle/libs.versions.toml b/blueprints/starter/gradle/libs.versions.toml index 0fe72377..583225a5 100644 --- a/blueprints/starter/gradle/libs.versions.toml +++ b/blueprints/starter/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] assertk = "0.28.1" -app-platform = "0.1.3" +app-platform = "0.1.4" agp = "9.3.1" android-compileSdk = "37" android-minSdk = "23" @@ -8,7 +8,7 @@ android-targetSdk = "37" androidx-activity = "1.13.0" compose-material-icons = "1.7.3" compose-material3 = "1.9.0" -compose-multiplatform = "1.11.1" +compose-multiplatform = "1.12.0" coroutines = "1.11.0" kotlin = "2.4.10" metro = "1.4.2" diff --git a/blueprints/starter/navigation/impl/build.gradle.kts b/blueprints/starter/navigation/impl/build.gradle.kts index a068f4a2..06b8f50e 100644 --- a/blueprints/starter/navigation/impl/build.gradle.kts +++ b/blueprints/starter/navigation/impl/build.gradle.kts @@ -37,6 +37,7 @@ kotlin { wasmJs { outputModuleName = project.path.removePrefix(":").replace(":", "-") + binaries.executable() browser() } diff --git a/blueprints/starter/templates/impl/build.gradle.kts b/blueprints/starter/templates/impl/build.gradle.kts index 684d4b3a..5f0c8b0f 100644 --- a/blueprints/starter/templates/impl/build.gradle.kts +++ b/blueprints/starter/templates/impl/build.gradle.kts @@ -37,6 +37,7 @@ kotlin { wasmJs { outputModuleName = project.path.removePrefix(":").replace(":", "-") + binaries.executable() browser() } diff --git a/blueprints/starter/templates/public/src/commonMain/kotlin/software/ralf/app/platform/template/templates/AppTemplatePresenter.kt b/blueprints/starter/templates/public/src/commonMain/kotlin/software/ralf/app/platform/template/templates/AppTemplatePresenter.kt index 07fca7f0..42ba5036 100644 --- a/blueprints/starter/templates/public/src/commonMain/kotlin/software/ralf/app/platform/template/templates/AppTemplatePresenter.kt +++ b/blueprints/starter/templates/public/src/commonMain/kotlin/software/ralf/app/platform/template/templates/AppTemplatePresenter.kt @@ -1,12 +1,12 @@ package software.ralf.app.platform.template.templates import androidx.compose.runtime.Composable +import androidx.compose.runtime.withCompositionLocals import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedFactory import dev.zacsweers.metro.AssistedInject import software.ralf.app.platform.presenter.BaseModel import software.ralf.app.platform.presenter.molecule.MoleculePresenter -import software.ralf.app.platform.presenter.molecule.returningCompositionLocalProvider import software.ralf.app.platform.presenter.template.ModelDelegate import software.ralf.app.platform.presenter.template.toTemplate @@ -21,10 +21,7 @@ class AppTemplatePresenter(@Assisted private val rootPresenter: MoleculePresente MoleculePresenter { @Composable override fun present(input: Unit): AppTemplate { - @Suppress("RemoveEmptyParenthesesFromLambdaCall") - return returningCompositionLocalProvider( - // Add local composition providers if needed. - ) { + return withCompositionLocals { rootPresenter.present(Unit).toTemplate { AppTemplate.FullScreenTemplate(it) } } }