Skip to content

Commit

Permalink
feat/#17 : HomeRoute.AiRecommendation 구성
Browse files Browse the repository at this point in the history
  • Loading branch information
shinythinking committed Feb 18, 2025
1 parent 03fb39d commit 8b1e1b6
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,7 @@ sealed interface HomeRoute : Route {

@Serializable
data object Story : HomeRoute

@Serializable
data class AiRecommendation(val episodes: kotlin.collections.List<String>) : HomeRoute
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import com.boostcamp.mapisode.home.HomeRoute
import com.boostcamp.mapisode.home.ai.RecommendationRoute
import com.boostcamp.mapisode.home.detail.EpisodeDetailRoute
import com.boostcamp.mapisode.home.edit.EpisodeEditRoute
import com.boostcamp.mapisode.home.list.EpisodeListRoute
Expand Down Expand Up @@ -49,6 +50,13 @@ fun NavController.navigateStoryViewer(
navigate(HomeRoute.Story, navOptions)
}

fun NavController.navigateToAiRecommendation(
episodes: List<String>,
navOptions: NavOptions? = null,
) {
navigate(HomeRoute.AiRecommendation(episodes), navOptions)
}

fun NavGraphBuilder.addHomeNavGraph(
navController: NavController,
onTextMarkerClick: (EpisodeLatLng) -> Unit,
Expand All @@ -57,12 +65,14 @@ fun NavGraphBuilder.addHomeNavGraph(
onListFabClick: (String) -> Unit,
onStoryClick: () -> Unit,
onBackClick: () -> Unit,
onAiRecommendationClick: (List<String>) -> Unit,
) {
composable<MainRoute.Home> {
HomeRoute(
onTextMarkerClick = onTextMarkerClick,
onEpisodeClick = onEpisodeClick,
onListFabClick = onListFabClick,
onAiRecommendationClick = onAiRecommendationClick,
)
}

Expand Down Expand Up @@ -96,4 +106,12 @@ fun NavGraphBuilder.addHomeNavGraph(
onBackClick = onBackClick,
)
}

composable<HomeRoute.AiRecommendation> { backStackEntry ->
val episodes = backStackEntry.toRoute<HomeRoute.AiRecommendation>().episodes
RecommendationRoute(
episodes = episodes,
onBackClick = onBackClick,
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import com.boostcamp.mapisode.home.navigation.navigateEpisodeDetail
import com.boostcamp.mapisode.home.navigation.navigateEpisodeEdit
import com.boostcamp.mapisode.home.navigation.navigateEpisodeList
import com.boostcamp.mapisode.home.navigation.navigateStoryViewer
import com.boostcamp.mapisode.home.navigation.navigateToAiRecommendation
import com.boostcamp.mapisode.model.EpisodeLatLng
import com.boostcamp.mapisode.mygroup.navigation.navigateGroupCreation
import com.boostcamp.mapisode.mygroup.navigation.navigateGroupDetail
Expand Down Expand Up @@ -107,6 +108,10 @@ internal class MainNavigator(
navController.navigateStoryViewer()
}

fun navigateToAiRecommendation(episodes: List<String>) {
navController.navigateToAiRecommendation(episodes)
}

private fun popBackStack() {
navController.popBackStack()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ internal fun MainNavHost(
onListFabClick = navigator::navigateToEpisodeList,
onStoryClick = navigator::navigateToStoryViewer,
onBackClick = navigator::popBackStackIfNotHome,
onAiRecommendationClick = navigator::navigateToAiRecommendation,
)
addAuthNavGraph(
navigateToMain = navigator::navigateToMain,
Expand Down

0 comments on commit 8b1e1b6

Please sign in to comment.