|
|
@ -20,6 +20,8 @@ import androidx.navigation.NavController
|
|
|
|
import androidx.navigation.NavGraphBuilder
|
|
|
|
import androidx.navigation.NavGraphBuilder
|
|
|
|
import androidx.navigation.NavOptions
|
|
|
|
import androidx.navigation.NavOptions
|
|
|
|
import androidx.navigation.compose.composable
|
|
|
|
import androidx.navigation.compose.composable
|
|
|
|
|
|
|
|
import androidx.navigation3.runtime.EntryProviderBuilder
|
|
|
|
|
|
|
|
import androidx.navigation3.runtime.entry
|
|
|
|
import com.google.samples.apps.nowinandroid.feature.search.SearchRoute
|
|
|
|
import com.google.samples.apps.nowinandroid.feature.search.SearchRoute
|
|
|
|
import kotlinx.serialization.Serializable
|
|
|
|
import kotlinx.serialization.Serializable
|
|
|
|
|
|
|
|
|
|
|
@ -28,14 +30,14 @@ import kotlinx.serialization.Serializable
|
|
|
|
fun NavController.navigateToSearch(navOptions: NavOptions? = null) =
|
|
|
|
fun NavController.navigateToSearch(navOptions: NavOptions? = null) =
|
|
|
|
navigate(SearchRoute, navOptions)
|
|
|
|
navigate(SearchRoute, navOptions)
|
|
|
|
|
|
|
|
|
|
|
|
fun NavGraphBuilder.searchScreen(
|
|
|
|
fun EntryProviderBuilder<Any>.searchScreen(
|
|
|
|
onBackClick: () -> Unit,
|
|
|
|
onBackClick: () -> Unit,
|
|
|
|
onInterestsClick: () -> Unit,
|
|
|
|
onInterestsClick: () -> Unit,
|
|
|
|
onTopicClick: (String) -> Unit,
|
|
|
|
onTopicClick: (String) -> Unit,
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
// TODO: Handle back stack for each top-level destination. At the moment each top-level
|
|
|
|
// TODO: Handle back stack for each top-level destination. At the moment each top-level
|
|
|
|
// destination may have own search screen's back stack.
|
|
|
|
// destination may have own search screen's back stack.
|
|
|
|
composable<SearchRoute> {
|
|
|
|
entry<SearchRoute> {
|
|
|
|
SearchRoute(
|
|
|
|
SearchRoute(
|
|
|
|
onBackClick = onBackClick,
|
|
|
|
onBackClick = onBackClick,
|
|
|
|
onInterestsClick = onInterestsClick,
|
|
|
|
onInterestsClick = onInterestsClick,
|
|
|
|