diff --git a/samples/src/main/java/com/squareup/sample/hellocomposerendering/HelloRenderingWorkflow.kt b/samples/src/main/java/com/squareup/sample/hellocomposerendering/HelloRenderingWorkflow.kt index ac662cda..877d2b20 100644 --- a/samples/src/main/java/com/squareup/sample/hellocomposerendering/HelloRenderingWorkflow.kt +++ b/samples/src/main/java/com/squareup/sample/hellocomposerendering/HelloRenderingWorkflow.kt @@ -15,35 +15,46 @@ */ package com.squareup.sample.hellocomposerendering -// There is a bug in Compose dev12 that crashes the compiler when processing this code. -// See https://github.com/square/workflow-kotlin-compose/issues/42. -// /** -// * A [ComposeWorkflow] that is used by [HelloWorkflow] to render the screen. -// * -// * This workflow has type `Workflow`. -// */ -// object HelloRenderingWorkflow : ComposeWorkflow() { -// -// object Toggle -// -// @Composable override fun render( -// props: String, -// outputSink: Sink, -// viewEnvironment: ViewEnvironment -// ) { -// MaterialTheme { -// Text( -// props, -// modifier = Modifier -// .ripple() -// .clickable(onClick = { outputSink.send(Toggle) }) -// .wrapContentSize(Alignment.Center) -// ) -// } -// } -// } -// -// @Preview(showBackground = true) -// @Composable fun HelloRenderingWorkflowPreview() { -// HelloRenderingWorkflow.preview(props = "hello") -// } +import androidx.compose.foundation.Text +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.material.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.ui.tooling.preview.Preview +import com.squareup.sample.hellocomposerendering.HelloRenderingWorkflow.Toggle +import com.squareup.workflow.Sink +import com.squareup.workflow.ui.ViewEnvironment +import com.squareup.workflow.ui.compose.ComposeWorkflow +import com.squareup.workflow.ui.compose.tooling.preview + +/** + * A [ComposeWorkflow] that is used by [HelloWorkflow] to render the screen. + * + * This workflow has type `Workflow`. + */ +object HelloRenderingWorkflow : ComposeWorkflow() { + + object Toggle + + @Composable override fun render( + props: String, + outputSink: Sink, + viewEnvironment: ViewEnvironment + ) { + MaterialTheme { + Text( + props, + modifier = Modifier + .clickable(onClick = { outputSink.send(Toggle) }) + .wrapContentSize(Alignment.Center) + ) + } + } +} + +@Preview(showBackground = true) +@Composable fun HelloRenderingWorkflowPreview() { + HelloRenderingWorkflow.preview(props = "hello") +} diff --git a/samples/src/main/java/com/squareup/sample/hellocomposerendering/HelloWorkflow.kt b/samples/src/main/java/com/squareup/sample/hellocomposerendering/HelloWorkflow.kt index 3374caa3..62f7cfba 100644 --- a/samples/src/main/java/com/squareup/sample/hellocomposerendering/HelloWorkflow.kt +++ b/samples/src/main/java/com/squareup/sample/hellocomposerendering/HelloWorkflow.kt @@ -50,9 +50,8 @@ object HelloWorkflow : StatefulWorkflow( props: Unit, state: State, context: RenderContext - ): ComposeRendering = ComposeRendering.NoopRendering - // See https://github.com/square/workflow-kotlin-compose/issues/42. - //context.renderChild(HelloRenderingWorkflow, state.name) { helloAction } + ): ComposeRendering = + context.renderChild(HelloRenderingWorkflow, state.name) { helloAction } override fun snapshotState(state: State): Snapshot = Snapshot.of(if (state == Hello) 1 else 0) } diff --git a/samples/src/main/java/com/squareup/sample/launcher/Samples.kt b/samples/src/main/java/com/squareup/sample/launcher/Samples.kt index 93633bad..77daa915 100644 --- a/samples/src/main/java/com/squareup/sample/launcher/Samples.kt +++ b/samples/src/main/java/com/squareup/sample/launcher/Samples.kt @@ -23,6 +23,8 @@ import com.squareup.sample.hellocompose.App import com.squareup.sample.hellocompose.HelloComposeActivity import com.squareup.sample.hellocomposebinding.DrawHelloRenderingPreview import com.squareup.sample.hellocomposebinding.HelloBindingActivity +import com.squareup.sample.hellocomposerendering.HelloComposeRenderingActivity +import com.squareup.sample.hellocomposerendering.HelloRenderingWorkflowPreview import com.squareup.sample.nestedrenderings.NestedRenderingsActivity import com.squareup.sample.nestedrenderings.RecursiveViewFactoryPreview import kotlin.reflect.KClass @@ -32,11 +34,10 @@ val samples = listOf( "Hello Compose Binding", HelloBindingActivity::class, "Creates a ViewFactory using bindCompose." ) { DrawHelloRenderingPreview() }, - // Broken in dev12, see https://github.com/square/workflow-kotlin-compose/issues/42. - // Sample( - // "Hello Compose Rendering", HelloComposeRenderingActivity::class, - // "Uses ComposeWorkflow to create a workflow that draws itself." - // ) { HelloRenderingWorkflowPreview() }, + Sample( + "Hello Compose Rendering", HelloComposeRenderingActivity::class, + "Uses ComposeWorkflow to create a workflow that draws itself." + ) { HelloRenderingWorkflowPreview() }, Sample( "Hello Compose", HelloComposeActivity::class, "A pure Compose app that launches its root Workflow from inside Compose."