From ca60cc64d1b0feff576d9ccaf96ab7eedaa4a57f Mon Sep 17 00:00:00 2001 From: jihyunniiii Date: Sat, 31 Aug 2024 10:33:14 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[chore]=20#230=20=EB=82=B4=EA=B0=80=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=ED=95=9C=20=EC=BD=94=EC=8A=A4=20->=20?= =?UTF-8?q?=EC=BD=94=EC=8A=A4=20=EC=83=81=EC=84=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/mycourse/MyCourseContract.kt | 2 ++ .../presentation/ui/mycourse/MyCourseScreen.kt | 16 +++++++++++----- .../ui/mycourse/navigation/MyCourseNavigation.kt | 5 +++-- .../ui/navigator/component/MainNavHost.kt | 3 ++- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/MyCourseContract.kt b/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/MyCourseContract.kt index b4a197cab..ac3a89586 100644 --- a/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/MyCourseContract.kt +++ b/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/MyCourseContract.kt @@ -15,6 +15,8 @@ class MyCourseContract { ) : UiState sealed interface MyCourseSideEffect : UiSideEffect { + data class NavigateToEnroll(val courseId: Int) : MyCourseSideEffect + data class NavigateToCourseDetail(val courseId: Int) : MyCourseSideEffect data object PopBackStack : MyCourseSideEffect } diff --git a/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/MyCourseScreen.kt b/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/MyCourseScreen.kt index 3ba32d965..4b89bdfca 100644 --- a/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/MyCourseScreen.kt +++ b/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/MyCourseScreen.kt @@ -40,6 +40,7 @@ fun MyCourseRoute( viewModel: MyCourseViewModel = hiltViewModel(), popBackStack: () -> Unit, navigateToEnroll: (EnrollType, Int?) -> Unit, + navigateToCourseDetail: (Int) -> Unit, myCourseType: MyCourseType ) { val uiState by viewModel.uiState.collectAsStateWithLifecycle() @@ -60,6 +61,8 @@ fun MyCourseRoute( viewModel.sideEffect.flowWithLifecycle(lifecycle = lifecycleOwner.lifecycle) .collect { myCourseSideEffect -> when (myCourseSideEffect) { + is MyCourseContract.MyCourseSideEffect.NavigateToEnroll -> navigateToEnroll(EnrollType.TIMELINE, myCourseSideEffect.courseId) + is MyCourseContract.MyCourseSideEffect.NavigateToCourseDetail -> navigateToCourseDetail(myCourseSideEffect.courseId) is MyCourseContract.MyCourseSideEffect.PopBackStack -> popBackStack() } } @@ -75,7 +78,8 @@ fun MyCourseRoute( padding = padding, myCourseUiState = uiState, onIconClick = popBackStack, - onCourseCardClick = navigateToEnroll + navigateToEnroll = { courseId -> viewModel.setSideEffect(MyCourseContract.MyCourseSideEffect.NavigateToEnroll(courseId = courseId)) }, + navigateToCourseDetail = { courseId -> viewModel.setSideEffect(MyCourseContract.MyCourseSideEffect.NavigateToCourseDetail(courseId = courseId)) } ) } @@ -88,7 +92,8 @@ fun MyCourseScreen( padding: PaddingValues, myCourseUiState: MyCourseContract.MyCourseUiState = MyCourseContract.MyCourseUiState(), onIconClick: () -> Unit, - onCourseCardClick: (EnrollType, Int?) -> Unit + navigateToEnroll: (Int) -> Unit, + navigateToCourseDetail: (Int) -> Unit ) { Column( modifier = Modifier @@ -123,8 +128,8 @@ fun MyCourseScreen( course = course, onClick = { when (myCourseUiState.myCourseType) { - MyCourseType.ENROLL -> {} - MyCourseType.READ -> onCourseCardClick(EnrollType.TIMELINE, course.courseId) + MyCourseType.ENROLL -> navigateToCourseDetail(course.courseId) + MyCourseType.READ -> navigateToEnroll(course.courseId) } } ) @@ -182,7 +187,8 @@ fun MyCourseScreenPreview() { ) ), onIconClick = {}, - onCourseCardClick = { _, _ -> } + navigateToEnroll = {}, + navigateToCourseDetail = {} ) } } diff --git a/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/navigation/MyCourseNavigation.kt b/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/navigation/MyCourseNavigation.kt index f705090f8..84f01aa86 100644 --- a/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/navigation/MyCourseNavigation.kt +++ b/app/src/main/java/org/sopt/dateroad/presentation/ui/mycourse/navigation/MyCourseNavigation.kt @@ -18,7 +18,8 @@ fun NavController.navigateMyCourses(myCourseType: MyCourseType) { fun NavGraphBuilder.myCoursesNavGraph( padding: PaddingValues, popBackStack: () -> Unit, - navigateToEnroll: (EnrollType, Int?) -> Unit + navigateToEnroll: (EnrollType, Int?) -> Unit, + navigateToCourseDetail: (Int) -> Unit ) { composable( route = ROUTE_WITH_ARGUMENT, @@ -32,7 +33,7 @@ fun NavGraphBuilder.myCoursesNavGraph( MyCourseType.valueOf(it) } ?: MyCourseType.ENROLL - MyCourseRoute(padding = padding, popBackStack = popBackStack, myCourseType = myCourseType, navigateToEnroll = navigateToEnroll) + MyCourseRoute(padding = padding, popBackStack = popBackStack, myCourseType = myCourseType, navigateToEnroll = navigateToEnroll, navigateToCourseDetail = navigateToCourseDetail) } } diff --git a/app/src/main/java/org/sopt/dateroad/presentation/ui/navigator/component/MainNavHost.kt b/app/src/main/java/org/sopt/dateroad/presentation/ui/navigator/component/MainNavHost.kt index c709d715e..44a708cb4 100644 --- a/app/src/main/java/org/sopt/dateroad/presentation/ui/navigator/component/MainNavHost.kt +++ b/app/src/main/java/org/sopt/dateroad/presentation/ui/navigator/component/MainNavHost.kt @@ -77,7 +77,8 @@ fun MainNavHost( myCoursesNavGraph( padding = padding, popBackStack = navigator::popBackStackIfNotHome, - navigateToEnroll = navigator::navigateToEnroll + navigateToEnroll = navigator::navigateToEnroll, + navigateToCourseDetail = navigator::navigateToCourseDetail ) myPageNavGraph( From a1e040b5a6305eb5ce4730009998f53c8b5dd552 Mon Sep 17 00:00:00 2001 From: jihyunniiii Date: Sat, 31 Aug 2024 10:33:41 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[del]=20#230=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=ED=95=A8=EC=88=98=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/navigator/MainNavigator.kt | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/app/src/main/java/org/sopt/dateroad/presentation/ui/navigator/MainNavigator.kt b/app/src/main/java/org/sopt/dateroad/presentation/ui/navigator/MainNavigator.kt index 4056f1660..67a834ecb 100644 --- a/app/src/main/java/org/sopt/dateroad/presentation/ui/navigator/MainNavigator.kt +++ b/app/src/main/java/org/sopt/dateroad/presentation/ui/navigator/MainNavigator.kt @@ -143,17 +143,6 @@ class MainNavigator( navHostController.navigationSignIn() } - fun navigateTimeline(navOptions: NavOptions? = null) { - navHostController.navigationTimeline( - navOptions ?: navOptions { - popUpTo(navHostController.graph.findStartDestination().id) { - inclusive = true - } - launchSingleTop = true - } - ) - } - fun navigateToTimelineDetail(timelineType: TimelineType, dateId: Int) { navHostController.navigateToTimelineDetail(timelineType, dateId) }