Skip to content

Commit 8460b26

Browse files
committed
🐛 :: conflict fix
:: conflict fix
2 parents 82bcb03 + 76282fc commit 8460b26

File tree

17 files changed

+117
-53
lines changed

17 files changed

+117
-53
lines changed

app/src/main/java/com/kdn/stack_knowledge/navigation/StackKnowledgeNavHost.kt

+18-3
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,32 @@ package com.kdn.stack_knowledge.navigation
33
import androidx.compose.runtime.Composable
44
import androidx.compose.ui.Modifier
55
import androidx.navigation.compose.NavHost
6+
import com.minstone.ui.navigation.NavigateType
67
import com.stackknowledge.login.navigation.loginScreen
78
import com.stackknowledge.login.navigation.navigateToLogin
89
import com.stackknowledge.login.navigation.roleCheckRoute
910
import com.stackknowledge.login.navigation.roleCheckScreen
1011
import com.stackknowledge.main.navigation.mainScreen
1112
import com.stackknowledge.main.navigation.navigateToMain
1213
import com.kdn.stack_knowledge.navigation.util.bottomNavigationNavigate
14+
import com.stackknowledge.ranking.navigation.navigateToRanking
15+
import com.stackknowledge.ranking.navigation.navigateToTeacherRanking
1316
import com.stackknowledge.ranking.navigation.rankingScreen
1417
import com.stackknowledge.ranking.navigation.teacherRankingScreen
1518
import com.stackknowledge.score_mission.navigation.gradingAnswerScreen
1619
import com.stackknowledge.score_mission.navigation.navigateToGradingAnswer
17-
import com.stackknowledge.score_mission.navigation.solvedMissionScreen
20+
import com.stackknowledge.score_mission.navigation.navigateToSolvedMission
1821
import com.stackknowledge.shop.navigation.shopRoute
1922
import com.stackknowledge.shop.navigation.shopScreen
20-
import com.stackknowledge.shop.navigation.teacherShopRoute
2123
import com.stackknowledge.shop.navigation.teacherShopScreen
2224
import com.kdn.stack_knowledge.ui.StackKnowledgeAppState
25+
import com.stackknowledge.score_mission.navigation.solvedMissionScreen
2326
import com.stackkowledge.mission.navigation.createMissionScreen
2427
import com.stackkowledge.mission.navigation.entireMissionScreen
28+
import com.stackkowledge.mission.navigation.navigateToEntireMission
2529
import com.stackkowledge.mission.navigation.navigateToResolveMission
2630
import com.stackkowledge.mission.navigation.resolveMissionScreen
31+
import enumdata.Authority
2732

2833
@Composable
2934
fun StackKnowledgeNavHost(
@@ -47,7 +52,17 @@ fun StackKnowledgeNavHost(
4752
onRoleButtonClick = navController::navigateToLogin
4853
)
4954
mainScreen(
50-
onNavigate = { role, navType -> bottomNavigationNavigate(role, navController, navType) }
55+
onNavigate = { role, navType, index ->
56+
if (index != null) {
57+
if (navType == NavigateType.MISSION.value) {
58+
if (role == Authority.ROLE_STUDENT) navController.navigateToEntireMission()
59+
else navController.navigateToSolvedMission()
60+
} else {
61+
if (role == Authority.ROLE_STUDENT) navController.navigateToRanking()
62+
else navController.navigateToTeacherRanking()
63+
}
64+
} else bottomNavigationNavigate(role, navController, navType)
65+
},
5166
)
5267
createMissionScreen(
5368
onNavigate = { role, navType -> bottomNavigationNavigate(role, navController, navType) },

core/design-system/src/main/java/com/stackknowledge/design_system/component/bottomsheet/StackKnowledgeBottomSheet.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import androidx.compose.ui.tooling.preview.Preview
2121
import androidx.compose.ui.unit.dp
2222
import com.stackknowledge.design_system.R
2323
import com.stackknowledge.design_system.component.button.StackKnowledgeButton
24+
import com.stackknowledge.design_system.component.button.enumclass.ButtonState
2425
import com.stackknowledge.design_system.theme.StackKnowledgeAndroidTheme
2526

2627
@OptIn(ExperimentalMaterial3Api::class)
@@ -85,10 +86,10 @@ fun StackKnowledgeBottomSheet(
8586
Spacer(modifier = modifier.height(8.dp))
8687
StackKnowledgeButton(
8788
text = stringResource(id = R.string.purchase),
89+
enable = ButtonState.ACTIVATE,
8890
modifier = modifier
8991
.height(60.dp),
90-
onClick = {},
91-
)
92+
) {}
9293

9394
Spacer(modifier = modifier.height(24.dp))
9495
}

core/design-system/src/main/java/com/stackknowledge/design_system/component/button/StackKnowledgeButton.kt

+19-6
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,36 @@ import androidx.compose.ui.Modifier
1111
import androidx.compose.ui.draw.clip
1212
import androidx.compose.ui.tooling.preview.Preview
1313
import androidx.compose.ui.unit.dp
14+
import com.stackknowledge.design_system.component.button.enumclass.ButtonState
1415
import com.stackknowledge.design_system.theme.StackKnowledgeAndroidTheme
1516

1617
@Composable
1718
fun StackKnowledgeButton(
1819
modifier: Modifier = Modifier,
19-
onClick: () -> Unit = {},
2020
text: String,
21+
enable: ButtonState,
22+
onClick: () -> Unit,
2123
) {
2224
StackKnowledgeAndroidTheme { colors, typography ->
25+
val color = when (enable) {
26+
ButtonState.ACTIVATE -> {
27+
colors.P1
28+
}
29+
30+
ButtonState.DISABLED -> {
31+
colors.G1
32+
}
33+
}
2334
Button(
24-
onClick = { onClick() },
35+
onClick = {
36+
if (enable.buttonState) onClick()
37+
},
2538
modifier = modifier
2639
.fillMaxWidth()
2740
.clip(shape = RoundedCornerShape(10.dp))
28-
.background(color = colors.P1),
41+
.background(color = color),
2942
colors = ButtonDefaults.buttonColors(
30-
containerColor = colors.P1
43+
containerColor = color
3144
)
3245
) {
3346
Text(
@@ -44,6 +57,6 @@ fun StackKnowledgeButton(
4457
fun StackKnowledgeButtonPre() {
4558
StackKnowledgeButton(
4659
text = "제출하기",
47-
onClick = {}
48-
)
60+
enable = ButtonState.ACTIVATE
61+
) {}
4962
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.stackknowledge.design_system.component.button.enumclass
2+
3+
enum class ButtonState(val buttonState: Boolean) {
4+
ACTIVATE(true),
5+
DISABLED(false)
6+
}

core/ui/src/main/java/com/minstone/ui/navigation/StackKnowledgeBottomNavigation.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.Row
99
import androidx.compose.foundation.layout.Spacer
1010
import androidx.compose.foundation.layout.fillMaxWidth
1111
import androidx.compose.foundation.layout.height
12+
import androidx.compose.material3.NavigationBar
1213
import androidx.compose.material3.Text
1314
import androidx.compose.runtime.Composable
1415
import androidx.compose.ui.Alignment
@@ -54,7 +55,7 @@ fun StackKnowledgeBottomNavigation(
5455
)
5556

5657
navItems.forEachIndexed { index, (iconRes, navigateType, stringResId) ->
57-
if (index != 2 || role == Authority.ROLE_TEACHER) { // 로그인 로직 적용후 변경
58+
if (index != 2 || role == Authority.ROLE_TEACHER) {
5859
BottomNavigationComponent(
5960
modifier = modifier
6061
.weight(1f)

feature/login/src/main/java/com/stackknowledge/login/RoleCheckScreen.kt

+3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import androidx.compose.ui.tooling.preview.Preview
2424
import androidx.compose.ui.unit.dp
2525
import androidx.hilt.navigation.compose.hiltViewModel
2626
import com.stackknowledge.design_system.component.button.StackKnowledgeButton
27+
import com.stackknowledge.design_system.component.button.enumclass.ButtonState
2728
import com.stackknowledge.design_system.theme.StackKnowledgeAndroidTheme
2829
import com.stackknowledge.login.background.LoginBackground
2930
import com.stackknowledge.login.viewmodel.AuthViewModel
@@ -79,6 +80,7 @@ private fun RoleCheckScreen(
7980
) {
8081
StackKnowledgeButton(
8182
text = stringResource(id = R.string.student),
83+
enable = ButtonState.ACTIVATE,
8284
modifier = modifier
8385
.height(60.dp)
8486
.weight(1f),
@@ -91,6 +93,7 @@ private fun RoleCheckScreen(
9193

9294
StackKnowledgeButton(
9395
text = stringResource(id = R.string.teacher),
96+
enable = ButtonState.ACTIVATE,
9497
modifier = modifier
9598
.height(60.dp)
9699
.weight(1f),

feature/main/src/main/java/com/stackknowledge/main/MainPageScreen.kt

+9-6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import androidx.compose.ui.Modifier
2121
import androidx.compose.ui.unit.dp
2222
import androidx.hilt.navigation.compose.hiltViewModel
2323
import androidx.lifecycle.compose.collectAsStateWithLifecycle
24+
import com.minstone.ui.navigation.NavigateType
2425
import com.minstone.ui.navigation.StackKnowledgeBottomNavigation
2526
import com.stackknowledge.design_system.component.dialog.JoinWaitingDialog
2627
import com.stackknowledge.design_system.component.dialog.StackKnowledgeDialog
@@ -37,7 +38,7 @@ import enumdata.Authority
3738

3839
@Composable
3940
internal fun MainPageRoute(
40-
onNavigate: (Authority, String) -> Unit,
41+
onNavigate: (Authority, String, Int?) -> Unit,
4142
viewModel: MainViewModel = hiltViewModel()
4243
) {
4344
var role by remember { mutableStateOf(Authority.ROLE_TEACHER) } //로그인 로직 적용후 변경
@@ -48,7 +49,7 @@ internal fun MainPageRoute(
4849
role = role,
4950
getMissionUiState = getMissionUiState,
5051
getRankingUiState = getRankingUiState,
51-
onNavigate = { navType -> onNavigate(role, navType) },
52+
onNavigate = { navType, index -> onNavigate(role, navType, index) },
5253
initMain = {
5354
with(viewModel) {
5455
getMission()
@@ -64,7 +65,7 @@ private fun MainPageScreen(
6465
role: Authority,
6566
getMissionUiState: GetMissionUiState,
6667
getRankingUiState: GetRankingUiState,
67-
onNavigate: (String) -> Unit,
68+
onNavigate: (String, Int?) -> Unit,
6869
initMain: () -> Unit,
6970
) {
7071
val scrollState = rememberScrollState()
@@ -91,11 +92,13 @@ private fun MainPageScreen(
9192
StackKnowledgePager()
9293
Spacer(modifier = modifier.height(28.dp))
9394
MissionList(
94-
getMissionUiState = getMissionUiState
95+
getMissionUiState = getMissionUiState,
96+
onClick = { onNavigate(NavigateType.MISSION.value, it) }
9597
)
9698
Spacer(modifier = modifier.height(20.dp))
9799
RankingList(
98-
getRankingUiState = getRankingUiState
100+
getRankingUiState = getRankingUiState,
101+
onClick = { onNavigate(NavigateType.RANKING.value, it) }
99102
)
100103
}
101104
}
@@ -112,7 +115,7 @@ private fun MainPageScreen(
112115
modifier = Modifier,
113116
role = role
114117
) {
115-
onNavigate(it)
118+
onNavigate(it, null)
116119
}
117120
}
118121
}

feature/main/src/main/java/com/stackknowledge/main/component/MissionList.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import remote.response.mission.MissionResponseModel
3131
fun MissionList(
3232
modifier: Modifier = Modifier,
3333
getMissionUiState: GetMissionUiState,
34+
onClick: (Int) -> Unit,
3435
) {
3536
StackKnowledgeAndroidTheme { colors, typography ->
3637
Column(
@@ -75,7 +76,8 @@ fun MissionList(
7576
MissionListItem(
7677
teacherName = list[index].user.name,
7778
title = list[index].title,
78-
point = list[index].point.toString()
79+
point = list[index].point.toString(),
80+
onClick = { onClick(index) },
7981
)
8082
Spacer(modifier = modifier.width(16.dp))
8183
}

feature/main/src/main/java/com/stackknowledge/main/component/MissionListItem.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.stackknowledge.main.component
22

33
import androidx.compose.foundation.background
4+
import androidx.compose.foundation.clickable
45
import androidx.compose.foundation.layout.Box
56
import androidx.compose.foundation.layout.Column
67
import androidx.compose.foundation.layout.Row
@@ -24,6 +25,7 @@ fun MissionListItem(
2425
teacherName: String,
2526
title: String,
2627
point: String,
28+
onClick: () -> Unit,
2729
) {
2830
StackKnowledgeAndroidTheme { colors, typography ->
2931
Box(
@@ -33,7 +35,8 @@ fun MissionListItem(
3335
.background(
3436
color = colors.WHITE,
3537
shape = RoundedCornerShape(20.dp)
36-
),
38+
)
39+
.clickable(onClick = onClick),
3740
contentAlignment = Alignment.Center
3841
) {
3942
Column(
@@ -77,6 +80,7 @@ fun MissionListItemPre() {
7780
MissionListItem(
7881
teacherName = "미소쌤",
7982
title = "북학파의 배경",
80-
point = "1000"
83+
point = "1000",
84+
onClick = {}
8185
)
8286
}

feature/main/src/main/java/com/stackknowledge/main/component/RankingList.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import com.stackknowledge.main.viewModel.uistate.GetRankingUiState
2323
fun RankingList(
2424
modifier: Modifier = Modifier,
2525
getRankingUiState: GetRankingUiState,
26+
onClick: (Int) -> Unit,
2627
) {
2728
StackKnowledgeAndroidTheme { colors, _ ->
2829
Column(
@@ -66,7 +67,8 @@ fun RankingList(
6667
RankingListItem(
6768
profileImage = list[index].user.profileImage,
6869
name = list[index].user.name,
69-
point = list[index].cumulatePoint.toString()
70+
point = list[index].cumulatePoint.toString(),
71+
onClick = { onClick(index) },
7072
)
7173
}
7274
if (index < 3) {

feature/main/src/main/java/com/stackknowledge/main/component/RankingListItem.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.stackknowledge.main.component
22

33
import androidx.compose.foundation.Image
44
import androidx.compose.foundation.background
5+
import androidx.compose.foundation.clickable
56
import androidx.compose.foundation.layout.Box
67
import androidx.compose.foundation.layout.Column
78
import androidx.compose.foundation.layout.Row
@@ -29,6 +30,7 @@ fun RankingListItem(
2930
profileImage: String?,
3031
name: String,
3132
point: String,
33+
onClick: () -> Unit,
3234
) {
3335
StackKnowledgeAndroidTheme { colors, typography ->
3436
Box(
@@ -38,7 +40,8 @@ fun RankingListItem(
3840
.background(
3941
color = colors.WHITE,
4042
shape = RoundedCornerShape(20.dp)
41-
),
43+
)
44+
.clickable(onClick = onClick),
4245
contentAlignment = Alignment.Center
4346
) {
4447
Column(
@@ -98,6 +101,7 @@ fun RankingListItemPre() {
98101
RankingListItem(
99102
profileImage = "",
100103
name = "미소쌤",
101-
point = "1000"
104+
point = "1000",
105+
onClick = {}
102106
)
103107
}

feature/main/src/main/java/com/stackknowledge/main/navigation/MainNavigation.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ fun NavController.navigateToMain(navOptions: NavOptions? = null) {
1414
}
1515

1616
fun NavGraphBuilder.mainScreen(
17-
onNavigate: (Authority, String) -> Unit,
17+
onNavigate: (Authority, String, Int?) -> Unit,
1818
) {
1919
composable(route = mainPageRoute) {
2020
MainPageRoute(
21-
onNavigate = onNavigate
21+
onNavigate = onNavigate,
2222
)
2323
}
2424
}

feature/mission/src/main/java/com/stackkowledge/mission/component/InputAnswer.kt

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import androidx.compose.ui.unit.dp
1616
import com.stackknowledge.design_system.theme.StackKnowledgeAndroidTheme
1717
import com.stackknowledge.design_system.R
1818
import com.stackknowledge.design_system.component.button.StackKnowledgeButton
19+
import com.stackknowledge.design_system.component.button.enumclass.ButtonState
1920
import com.stackknowledge.design_system.component.textfield.StackKnowledgeTextField
2021

2122
@Composable
@@ -52,6 +53,7 @@ fun InputAnswer(
5253

5354
StackKnowledgeButton(
5455
text = stringResource(id = R.string.submit),
56+
enable = ButtonState.ACTIVATE,
5557
modifier = modifier
5658
.height(60.dp),
5759
onClick = openDialog

0 commit comments

Comments
 (0)