Skip to content

Commit f12ae26

Browse files
committed
FIX: BottomNavigation내 각 속성값(이름, 아이콘, 이동 경로)를 enum class로 수정
1 parent d0a1c2b commit f12ae26

File tree

2 files changed

+40
-48
lines changed

2 files changed

+40
-48
lines changed

app/src/main/java/com/threegap/bitnagil/navigation/home/HomeBottomNavigationBar.kt

Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import androidx.compose.ui.tooling.preview.Preview
2323
import androidx.compose.ui.unit.dp
2424
import androidx.navigation.NavController
2525
import androidx.navigation.compose.currentBackStackEntryAsState
26-
import com.threegap.bitnagil.R
2726
import com.threegap.bitnagil.designsystem.BitnagilTheme
2827

2928
@Composable
@@ -39,44 +38,20 @@ fun HomeBottomNavigationBar(
3938
.padding(horizontal = 16.dp, vertical = 7.dp),
4039
horizontalArrangement = Arrangement.spacedBy(12.dp),
4140
) {
42-
HomeBottomNavigationItem(
43-
modifier = Modifier.weight(1f),
44-
selectIconResourceId = R.drawable.ic_home_fill,
45-
unSelectIconResourceId = R.drawable.ic_home_empty,
46-
title = "",
47-
onClick = {
48-
navController.navigate(HomeRoute.Home.route) {
49-
popUpTo(0) { inclusive = true }
50-
}
51-
},
52-
selected = navBackStackEntry?.destination?.route == HomeRoute.Home.route,
53-
)
54-
55-
HomeBottomNavigationItem(
56-
modifier = Modifier.weight(1f),
57-
selectIconResourceId = R.drawable.ic_recommend_fill,
58-
unSelectIconResourceId = R.drawable.ic_recommend_empty,
59-
title = "추천 루틴",
60-
onClick = {
61-
navController.navigate(HomeRoute.RecommendRoutine.route) {
62-
popUpTo(0) { inclusive = true }
63-
}
64-
},
65-
selected = navBackStackEntry?.destination?.route == HomeRoute.RecommendRoutine.route,
66-
)
67-
68-
HomeBottomNavigationItem(
69-
modifier = Modifier.weight(1f),
70-
selectIconResourceId = R.drawable.ic_mypage_fill,
71-
unSelectIconResourceId = R.drawable.ic_mypage_empty,
72-
title = "마이페이지",
73-
onClick = {
74-
navController.navigate(HomeRoute.MyPage.route) {
75-
popUpTo(0) { inclusive = true }
76-
}
77-
},
78-
selected = navBackStackEntry?.destination?.route == HomeRoute.MyPage.route,
79-
)
41+
HomeRoute.entries.map { homeRoute ->
42+
HomeBottomNavigationItem(
43+
modifier = Modifier.weight(1f),
44+
selectIconResourceId = homeRoute.selectIconResourceId,
45+
unSelectIconResourceId = homeRoute.unSelectIconResourceId,
46+
title = homeRoute.title,
47+
onClick = {
48+
navController.navigate(homeRoute.route) {
49+
popUpTo(0) { inclusive = true }
50+
}
51+
},
52+
selected = navBackStackEntry?.destination?.route == homeRoute.route,
53+
)
54+
}
8055
}
8156
}
8257

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,32 @@
11
package com.threegap.bitnagil.navigation.home
22

3-
import kotlinx.serialization.Serializable
3+
import com.threegap.bitnagil.R
44

5-
@Serializable
6-
sealed class HomeRoute(val route: String) {
7-
@Serializable
8-
data object Home : HomeRoute("home/home")
5+
enum class HomeRoute(
6+
val route: String,
7+
val title: String,
8+
val selectIconResourceId: Int,
9+
val unSelectIconResourceId: Int,
10+
) {
11+
Home(
12+
route = "home/home",
13+
title = "",
14+
selectIconResourceId = R.drawable.ic_home_fill,
15+
unSelectIconResourceId = R.drawable.ic_home_empty,
16+
),
917

10-
@Serializable
11-
data object RecommendRoutine : HomeRoute("home/recommend_routine")
18+
RecommendRoutine(
19+
route = "home/recommend_routine",
20+
title = "추천 루틴",
21+
selectIconResourceId = R.drawable.ic_recommend_fill,
22+
unSelectIconResourceId = R.drawable.ic_recommend_empty,
23+
),
1224

13-
@Serializable
14-
data object MyPage : HomeRoute("home/my_page")
25+
MyPage(
26+
route = "home/my_page",
27+
title = "마이페이지",
28+
selectIconResourceId = R.drawable.ic_mypage_fill,
29+
unSelectIconResourceId = R.drawable.ic_mypage_empty,
30+
),
31+
;
1532
}

0 commit comments

Comments
 (0)