
Simplifies communication between composables by enabling result passing and handling with minimal configuration. Offers easy setup with request keys, handers, and serializable result types.
A small helper for Jetpack Compose that simplifies sending results between composables.
libs.versions.toml
[versions]
navresult = "1.0.0"
[dependencies]
navresult = { group = "io.github.andannn", name = "navresult", version.ref = "navresult" }then
dependencies {
implementation(libs.navresult)
}
NavResultOwner into your composable.val navResultOwner = rememberNavResultOwner()
CompositionLocalProvider(
LocalNavResultOwner provides navResultOwner,
) {
// Top level composable.
App()
}const val ScreenABackResult = "screen_a_back_result"LaunchNavResultHandler(
requestKey = ScreenABackResult,
resultSerializer = ScreenAResult.serializer(),
) { result ->
// handle result
}@Serializable.@Serializable
data class ScreenAResult(val id: Int, val name: String)resultOwner.setNavResult(
requestKey = ScreenABackResult,
result = ScreenAResult(1, "foo"),
serializer = ScreenAResult.serializer()
)Please see the details in this sample.
A small helper for Jetpack Compose that simplifies sending results between composables.
libs.versions.toml
[versions]
navresult = "1.0.0"
[dependencies]
navresult = { group = "io.github.andannn", name = "navresult", version.ref = "navresult" }then
dependencies {
implementation(libs.navresult)
}
NavResultOwner into your composable.val navResultOwner = rememberNavResultOwner()
CompositionLocalProvider(
LocalNavResultOwner provides navResultOwner,
) {
// Top level composable.
App()
}const val ScreenABackResult = "screen_a_back_result"LaunchNavResultHandler(
requestKey = ScreenABackResult,
resultSerializer = ScreenAResult.serializer(),
) { result ->
// handle result
}@Serializable.@Serializable
data class ScreenAResult(val id: Int, val name: String)resultOwner.setNavResult(
requestKey = ScreenABackResult,
result = ScreenAResult(1, "foo"),
serializer = ScreenAResult.serializer()
)Please see the details in this sample.