@@ -8,12 +8,15 @@ import androidx.navigation.compose.NavHost
88import com.sseotdabwa.buyornot.BuildConfig
99import com.sseotdabwa.buyornot.core.network.AuthEvent
1010import com.sseotdabwa.buyornot.core.network.AuthEventBus
11+ import com.sseotdabwa.buyornot.core.ui.imageviewer.imageViewerScreen
12+ import com.sseotdabwa.buyornot.core.ui.imageviewer.navigateToImageViewer
1113import com.sseotdabwa.buyornot.core.ui.snackbar.LocalSnackbarState
1214import com.sseotdabwa.buyornot.core.ui.webview.navigateToPrivacyPolicy
1315import com.sseotdabwa.buyornot.core.ui.webview.navigateToTerms
16+ import com.sseotdabwa.buyornot.core.ui.webview.navigateToWebView
1417import com.sseotdabwa.buyornot.core.ui.webview.webViewScreen
15- import com.sseotdabwa.buyornot.feature.auth.navigation.AUTH_ROUTE
16- import com.sseotdabwa.buyornot.feature.auth.navigation.SPLASH_ROUTE
18+ import com.sseotdabwa.buyornot.feature.auth.navigation.AuthRoute
19+ import com.sseotdabwa.buyornot.feature.auth.navigation.SplashRoute
1720import com.sseotdabwa.buyornot.feature.auth.navigation.authScreen
1821import com.sseotdabwa.buyornot.feature.auth.navigation.navigateForceToLogin
1922import com.sseotdabwa.buyornot.feature.auth.navigation.navigateToLogin
@@ -27,17 +30,10 @@ import com.sseotdabwa.buyornot.feature.mypage.navigation.navigateToMyPage
2730import com.sseotdabwa.buyornot.feature.notification.navigation.navigateToNotification
2831import com.sseotdabwa.buyornot.feature.notification.navigation.navigateToNotificationDetail
2932import com.sseotdabwa.buyornot.feature.notification.navigation.notificationGraph
30- import com.sseotdabwa.buyornot.feature.upload.navigation.UPLOAD_ROUTE
33+ import com.sseotdabwa.buyornot.feature.upload.navigation.UploadRoute
3134import com.sseotdabwa.buyornot.feature.upload.navigation.navigateToUpload
3235import com.sseotdabwa.buyornot.feature.upload.navigation.uploadScreen
3336
34- /* *
35- * BuyOrNot μ±μ λ©μΈ λ€λΉκ²μ΄μ
νΈμ€νΈ
36- *
37- * @param navController λ€λΉκ²μ΄μ
컨νΈλ‘€λ¬
38- * @param authEventBus μΈμ¦ κ΄λ ¨ κΈλ‘λ² μ΄λ²€νΈλ₯Ό μμ νλ λ²μ€
39- * @param modifier λ μ΄μμ μμ μ
40- */
4137@Composable
4238fun BuyOrNotNavHost (
4339 navController : NavHostController ,
@@ -47,7 +43,6 @@ fun BuyOrNotNavHost(
4743) {
4844 val snackbarState = LocalSnackbarState .current
4945
50- // κ°μ λ‘κ·Έμμ μ΄λ²€νΈ μ²λ¦¬
5146 LaunchedEffect (authEventBus) {
5247 authEventBus.events.collect { event ->
5348 if (event == AuthEvent .FORCE_LOGOUT ) {
@@ -61,7 +56,7 @@ fun BuyOrNotNavHost(
6156
6257 NavHost (
6358 navController = navController,
64- startDestination = SPLASH_ROUTE ,
59+ startDestination = SplashRoute ,
6560 modifier = modifier,
6661 ) {
6762 splashScreen(
@@ -70,7 +65,7 @@ fun BuyOrNotNavHost(
7065 navController.navigateToHome(
7166 navOptions =
7267 androidx.navigation.navOptions {
73- popUpTo( SPLASH_ROUTE ) { inclusive = true }
68+ popUpTo< SplashRoute > { inclusive = true }
7469 launchSingleTop = true
7570 },
7671 )
@@ -83,7 +78,7 @@ fun BuyOrNotNavHost(
8378 navController.navigateToHome(
8479 navOptions =
8580 androidx.navigation.navOptions {
86- popUpTo( AUTH_ROUTE ) { inclusive = true }
81+ popUpTo< AuthRoute > { inclusive = true }
8782 launchSingleTop = true
8883 },
8984 )
@@ -97,10 +92,14 @@ fun BuyOrNotNavHost(
9792 onNotificationClick = navController::navigateToNotification,
9893 onProfileClick = navController::navigateToMyPage,
9994 onUploadClick = navController::navigateToUpload,
95+ onLinkClick = { url -> navController.navigateToWebView(" " , url) },
96+ onImageClick = { urls, page -> navController.navigateToImageViewer(urls, page) },
10097 )
10198 notificationGraph(
10299 onBackClick = navController::popBackStack,
103100 onNotificationClick = navController::navigateToNotificationDetail,
101+ onLinkClick = { url -> navController.navigateToWebView(" " , url) },
102+ onImageClick = { urls, page -> navController.navigateToImageViewer(urls, page) },
104103 )
105104 uploadScreen(
106105 onNavigateBack = navController::popBackStack,
@@ -109,7 +108,7 @@ fun BuyOrNotNavHost(
109108 tab = HomeTab .MY_FEED ,
110109 navOptions =
111110 androidx.navigation.navOptions {
112- popUpTo( UPLOAD_ROUTE ) {
111+ popUpTo< UploadRoute > {
113112 inclusive = true
114113 }
115114 launchSingleTop = true
@@ -122,6 +121,9 @@ fun BuyOrNotNavHost(
122121 versionName = BuildConfig .VERSION_NAME ,
123122 onNavigateToLogin = navController::navigateForceToLogin,
124123 )
124+ imageViewerScreen(
125+ onBackClick = navController::popBackStack,
126+ )
125127 webViewScreen(
126128 onBackClick = navController::popBackStack,
127129 )
0 commit comments