Skip to content

Commit 732e0f8

Browse files
committed
feat/#156: 전체 보기 클릭 시 일정 탭으로 이동
1 parent 4011192 commit 732e0f8

File tree

6 files changed

+23
-41
lines changed

6 files changed

+23
-41
lines changed

app/src/main/java/com/yapp/app/official/navigation/YappNavHost.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,14 @@ fun YappNavHost(
5050
}
5151
)
5252
homeNavGraph(
53-
navigateNotice = { navigator.navigateNoticeScreen() },
54-
navigateSetting = { navigator.navigateSettingScreen() },
5553
navigateLogin = {
5654
navigator.navigateLoginScreen(
5755
navOptions = clearBackStackNavOptions
5856
)
5957
},
60-
navigateToNoticeDetail = { noticeId ->
61-
navigator.navigateToNoticeDetail(noticeId)
62-
}
58+
navigateSchedule = {
59+
navigator.navigateToTopLevelDestination(TopLevelDestination.SCHEDULE)
60+
},
6361
)
6462
settingNavGraph(
6563
navigateLogin = {

feature/home/src/main/java/com/yapp/feature/home/HomeContract.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,19 +99,15 @@ data class HomeState(
9999
}
100100

101101
sealed interface HomeIntent {
102-
data object ClickMoreButton : HomeIntent
103-
data object ClickSettingButton : HomeIntent
104102
data object ClickRequestAttendCode : HomeIntent
105103
data object ClickDismissDialog : HomeIntent
106104
data class ClickRequestAttendance(val code: String, val sessionId: String) : HomeIntent
107105
data object EnterHomeScreen : HomeIntent
108-
data class ClickNoticeItem(val noticeId: String) : HomeIntent
106+
data object ClickShowAllSession : HomeIntent
109107
}
110108

111109
sealed interface HomeSideEffect {
112-
data object NavigateToNotice : HomeSideEffect
113-
data class NavigateToNoticeDetail(val noticeId: String) : HomeSideEffect
114-
data object NavigateToSetting : HomeSideEffect
110+
data object NavigateToSchedule : HomeSideEffect
115111
data object NavigateToLogin : HomeSideEffect
116112
data class ShowToast(val message: String) : HomeSideEffect
117113
}

feature/home/src/main/java/com/yapp/feature/home/HomeScreen.kt

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@ import com.yapp.feature.home.dialog.AttendanceDialog
2222

2323
@Composable
2424
internal fun HomeRoute(
25-
navigateToNotice: () -> Unit,
26-
navigateToSetting: () -> Unit,
2725
navigateToLogin: () -> Unit,
28-
navigateToNoticeDetail: (String) -> Unit,
26+
navigateToSchedule: () -> Unit,
2927
viewModel: HomeViewModel = hiltViewModel(),
3028
) {
3129
LaunchedEffect(Unit) {
@@ -36,14 +34,9 @@ internal fun HomeRoute(
3634
val context = LocalContext.current
3735
viewModel.store.sideEffects.collectWithLifecycle { effect ->
3836
when (effect) {
39-
HomeSideEffect.NavigateToNotice -> navigateToNotice()
40-
HomeSideEffect.NavigateToSetting -> navigateToSetting()
41-
is HomeSideEffect.ShowToast -> {
42-
Toast.makeText(context, effect.message, Toast.LENGTH_SHORT).show()
43-
}
44-
37+
HomeSideEffect.NavigateToSchedule -> navigateToSchedule()
38+
is HomeSideEffect.ShowToast -> Toast.makeText(context, effect.message, Toast.LENGTH_SHORT).show()
4539
HomeSideEffect.NavigateToLogin -> navigateToLogin()
46-
is HomeSideEffect.NavigateToNoticeDetail -> navigateToNoticeDetail(effect.noticeId)
4740
}
4841
}
4942

@@ -72,7 +65,7 @@ fun HomeScreen(
7265
.background(brush = Brush.horizontalGradient(colorStops = colorSteps)),
7366
sessions = homeState.sessions,
7467
upcomingSessionId = homeState.upcomingSessionId,
75-
onClickSessionItem = { }
68+
onClickShowAll = { onIntent(HomeIntent.ClickShowAllSession) },
7669
)
7770

7871
HomeAttendanceNotice(title = homeState.attendanceTitle)
@@ -109,9 +102,7 @@ private fun HomeScreenPreview() {
109102
YappTheme {
110103
HomeRoute(
111104
navigateToLogin = {},
112-
navigateToNotice = {},
113-
navigateToSetting = {},
114-
navigateToNoticeDetail = {}
105+
navigateToSchedule = {}
115106
)
116107
}
117108
}

feature/home/src/main/java/com/yapp/feature/home/HomeViewModel.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ internal class HomeViewModel @Inject constructor(
3535
postSideEffect: (HomeSideEffect) -> Unit,
3636
) {
3737
when (intent) {
38-
HomeIntent.ClickMoreButton -> postSideEffect(HomeSideEffect.NavigateToNotice)
39-
HomeIntent.ClickSettingButton -> postSideEffect(HomeSideEffect.NavigateToSetting)
4038
HomeIntent.EnterHomeScreen -> { loadHomeInfo( reduce,postSideEffect) }
39+
HomeIntent.ClickShowAllSession -> postSideEffect(HomeSideEffect.NavigateToSchedule)
4140
HomeIntent.ClickRequestAttendCode -> {
4241
reduce {
4342
copy(showAttendCodeBottomSheet = true)
@@ -51,7 +50,6 @@ internal class HomeViewModel @Inject constructor(
5150
is HomeIntent.ClickRequestAttendance -> {
5251
requestAttendance(intent.sessionId, intent.code, state, reduce)
5352
}
54-
is HomeIntent.ClickNoticeItem -> postSideEffect(HomeSideEffect.NavigateToNoticeDetail(intent.noticeId))
5553
}
5654
}
5755

feature/home/src/main/java/com/yapp/feature/home/component/HomeHeader.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ internal fun HomeHeader(
4949
modifier: Modifier = Modifier,
5050
sessions: List<HomeState.Session>,
5151
upcomingSessionId: String,
52-
onClickSessionItem: (String) -> Unit
52+
onClickShowAll: () -> Unit,
5353
) {
5454
val pageIndex = sessions.indexOfFirst { it.id == upcomingSessionId }
5555
val scope = rememberCoroutineScope()
@@ -78,7 +78,9 @@ internal fun HomeHeader(
7878
horizontalAlignment = Alignment.CenterHorizontally
7979
) {
8080
Row(
81-
modifier = Modifier.fillMaxWidth().padding(horizontal = 20.dp),
81+
modifier = Modifier
82+
.fillMaxWidth()
83+
.padding(horizontal = 20.dp),
8284
verticalAlignment = Alignment.CenterVertically,
8385
horizontalArrangement = Arrangement.SpaceBetween
8486
) {
@@ -98,13 +100,16 @@ internal fun HomeHeader(
98100
}
99101

100102
Text(
103+
modifier = Modifier.yappClickable(onClick = onClickShowAll),
101104
text = stringResource(R.string.home_session_all_title),
102105
style = YappTheme.typography.label1NormalBold,
103106
color = YappTheme.colorScheme.staticWhite
104107
)
105108
}
106109
LazyRow(
107-
modifier = Modifier.fillMaxWidth().padding(top = 10.dp),
110+
modifier = Modifier
111+
.fillMaxWidth()
112+
.padding(top = 10.dp),
108113
state = lazyListState,
109114
flingBehavior = flingBehavior,
110115
horizontalArrangement = Arrangement.spacedBy(8.dp),
@@ -123,7 +128,7 @@ internal fun HomeHeader(
123128
endTime = it.endTime,
124129
startDayOfWeek = it.startDayOfWeek,
125130
progressPhase = it.progressPhase,
126-
onClickSessionItem = onClickSessionItem
131+
onClickSessionItem = { }
127132
)
128133
}
129134
}
@@ -244,7 +249,7 @@ private fun HomeStickHeaderPreview() {
244249
progressPhase = ScheduleProgressPhase.TODAY
245250
)
246251
),
247-
onClickSessionItem = {},
252+
onClickShowAll = { },
248253
upcomingSessionId = "123"
249254
)
250255
}

feature/home/src/main/java/com/yapp/feature/home/navigation/HomeNavigation.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,13 @@ fun NavController.navigateToSetting(navOptions: NavOptions? = null) {
2323
}
2424

2525
fun NavGraphBuilder.homeNavGraph(
26-
navigateNotice: () -> Unit,
27-
navigateSetting: () -> Unit,
2826
navigateLogin : () -> Unit,
29-
navigateToNoticeDetail: (String) -> Unit
27+
navigateSchedule: () -> Unit,
3028
) {
3129
composable<HomeRoute> {
3230
HomeRoute(
33-
navigateToNotice = navigateNotice,
34-
navigateToSetting = navigateSetting,
3531
navigateToLogin = navigateLogin,
36-
navigateToNoticeDetail = { noticeId ->
37-
navigateToNoticeDetail(noticeId)
38-
}
32+
navigateToSchedule = navigateSchedule,
3933
)
4034
}
4135
}

0 commit comments

Comments
 (0)