Skip to content

Commit d5fff46

Browse files
committed
[Init/#4] 네비게이션 로직 수정
1 parent 573c3f5 commit d5fff46

File tree

7 files changed

+27
-30
lines changed

7 files changed

+27
-30
lines changed

app/src/main/java/com/poti/android/presentation/main/MainTab.kt

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.poti.android.presentation.main
22

33
import androidx.annotation.StringRes
4-
import androidx.navigation.NavDestination
54
import com.poti.android.R
65
import com.poti.android.core.navigation.Route
76
import com.poti.android.presentation.myparty.navigation.MyPartyRoute
@@ -24,15 +23,4 @@ enum class MainTab(
2423
label = R.string.bottom_nav_my_page,
2524
route = MyPageRoute.MyPage,
2625
),
27-
;
28-
29-
companion object {
30-
private val tabRouteNames: Set<String> =
31-
entries.mapNotNull { it.route::class.qualifiedName }.toSet()
32-
33-
fun contains(destination: NavDestination?): Boolean {
34-
val r = destination?.route ?: return false
35-
return r in tabRouteNames
36-
}
37-
}
3826
}

app/src/main/java/com/poti/android/presentation/main/PotiNavHost.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.navigation.compose.NavHost
88
import com.poti.android.presentation.auth.navigation.authNavGraph
99
import com.poti.android.presentation.myparty.navigation.myPartyNavGraph
1010
import com.poti.android.presentation.onboarding.navigation.onboardingNavGraph
11+
import com.poti.android.presentation.party.goodsfilter.navigation.navigateToGoodsCategory
1112
import com.poti.android.presentation.party.partyNavGraph
1213
import com.poti.android.presentation.user.mypage.navigation.myPageNavGraph
1314
import com.poti.android.presentation.user.profile.navigation.profileNavGraph
@@ -31,6 +32,7 @@ fun PotiNavHost(
3132
)
3233
partyNavGraph(
3334
paddingValues = paddingValues,
35+
onNavigateToGoodsCategory = navigator.navController::navigateToGoodsCategory,
3436
)
3537
myPartyNavGraph(
3638
paddingValues = paddingValues,

app/src/main/java/com/poti/android/presentation/main/PotiNavigator.kt

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ import androidx.navigation.NavHostController
88
import androidx.navigation.compose.currentBackStackEntryAsState
99
import androidx.navigation.compose.rememberNavController
1010
import androidx.navigation.navOptions
11-
import com.poti.android.presentation.myparty.navigation.MyPartyRoute
1211
import com.poti.android.presentation.party.PartyGraph
13-
import com.poti.android.presentation.party.home.navigation.HomeRoute
14-
import com.poti.android.presentation.user.mypage.navigation.MyPageRoute
1512

1613
class PotiNavigator(
1714
val navController: NavHostController,
@@ -24,9 +21,7 @@ class PotiNavigator(
2421

2522
val currentTab: MainTab?
2623
@Composable get() = MainTab.entries.find { tab ->
27-
when (tab.route) {
28-
else -> currentDestination?.route == tab.route::class.qualifiedName
29-
}
24+
currentDestination?.route == tab.route::class.qualifiedName
3025
}
3126

3227
fun navigate(tab: MainTab) {
@@ -38,17 +33,11 @@ class PotiNavigator(
3833
restoreState = true
3934
}
4035

41-
val route = when (tab) {
42-
MainTab.HOME -> HomeRoute.Home
43-
MainTab.MY_PARTY -> MyPartyRoute.MyPartyList
44-
MainTab.MY_PAGE -> MyPageRoute.MyPage
45-
}
46-
47-
navController.navigate(route, navOptions)
36+
navController.navigate(tab.route, navOptions)
4837
}
4938

5039
@Composable
51-
fun shouldShowBottomBar() = MainTab.contains(currentDestination)
40+
fun shouldShowBottomBar() = currentTab != null
5241
}
5342

5443
@Composable

app/src/main/java/com/poti/android/presentation/party/PartyNavigation.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.poti.android.presentation.party
33
import androidx.compose.foundation.layout.PaddingValues
44
import androidx.navigation.NavGraphBuilder
55
import androidx.navigation.navigation
6+
import com.poti.android.core.navigation.Route
67
import com.poti.android.presentation.party.create.navigation.partyCreateNavGraph
78
import com.poti.android.presentation.party.detail.navigation.partyDetailNavGraph
89
import com.poti.android.presentation.party.goodsfilter.navigation.goodsFilterNavGraph
@@ -11,16 +12,18 @@ import com.poti.android.presentation.party.home.navigation.homeNavGraph
1112
import kotlinx.serialization.Serializable
1213

1314
@Serializable
14-
object PartyGraph
15+
object PartyGraph : Route
1516

1617
fun NavGraphBuilder.partyNavGraph(
18+
onNavigateToGoodsCategory: () -> Unit,
1719
paddingValues: PaddingValues,
1820
) {
1921
navigation<PartyGraph>(
2022
startDestination = HomeRoute.Home,
2123
) {
2224
homeNavGraph(
2325
paddingValues = paddingValues,
26+
onNavigateToGoodsCategory = onNavigateToGoodsCategory,
2427
)
2528
goodsFilterNavGraph(
2629
paddingValues = paddingValues,

app/src/main/java/com/poti/android/presentation/party/goodsfilter/navigation/GoodsNavigation.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.poti.android.presentation.party.goodsfilter.navigation
33
import androidx.compose.foundation.layout.PaddingValues
44
import androidx.compose.foundation.layout.padding
55
import androidx.compose.ui.Modifier
6+
import androidx.navigation.NavController
67
import androidx.navigation.NavGraphBuilder
78
import androidx.navigation.compose.composable
89
import com.poti.android.core.navigation.Route
@@ -18,6 +19,10 @@ sealed interface GoodsRoute : Route {
1819
data object GoodsPartyList : GoodsRoute
1920
}
2021

22+
fun NavController.navigateToGoodsCategory() {
23+
navigate(GoodsRoute.GoodsList)
24+
}
25+
2126
fun NavGraphBuilder.goodsFilterNavGraph(
2227
paddingValues: PaddingValues,
2328
) {

app/src/main/java/com/poti/android/presentation/party/home/HomeScreen.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,26 @@ package com.poti.android.presentation.party.home
33
import androidx.compose.material3.Text
44
import androidx.compose.runtime.Composable
55
import androidx.compose.ui.Modifier
6+
import com.poti.android.core.common.extension.noRippleClickable
67

78
@Composable
89
fun HomeRoute(
10+
onNavigateToGoodsCategory: () -> Unit,
911
modifier: Modifier = Modifier,
1012
) {
11-
HomeScreen(modifier = modifier)
13+
HomeScreen(
14+
onClick = onNavigateToGoodsCategory,
15+
modifier = modifier,
16+
)
1217
}
1318

1419
@Composable
15-
private fun HomeScreen(modifier: Modifier = Modifier) {
20+
private fun HomeScreen(
21+
onClick: () -> Unit,
22+
modifier: Modifier = Modifier,
23+
) {
1624
Text(
1725
text = "",
18-
modifier = modifier,
26+
modifier = modifier.noRippleClickable(onClick),
1927
)
2028
}

app/src/main/java/com/poti/android/presentation/party/home/navigation/HomeNavigation.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ sealed interface HomeRoute : Route {
1616

1717
fun NavGraphBuilder.homeNavGraph(
1818
paddingValues: PaddingValues,
19+
onNavigateToGoodsCategory: () -> Unit,
1920
) {
2021
composable<HomeRoute.Home> {
2122
HomeRoute(
23+
onNavigateToGoodsCategory = onNavigateToGoodsCategory,
2224
modifier = Modifier.padding(paddingValues),
2325
)
2426
}

0 commit comments

Comments
 (0)