Script – Reusable Sub-flow
suspend fun NavFlowScriptScope<AppOutput, *>.collectAddress(
nodeScope: CoroutineScope
): Address = pushForResult(
factory = { AddressFormNode(nodeScope) },
mapper = { output ->
when (output) {
is AppOutput.AddressSubmitted -> output.address
AppOutput.AddressCancelled -> null
else -> null
}
}
)
Call collectAddress() from profile setup, checkout, etc. to keep the steps in one place.