diff --git a/app/src/main/java/com/kikidan/todakun/TodakunApp.kt b/app/src/main/java/com/kikidan/todakun/TodakunApp.kt index 2b3afbc1..54b60041 100644 --- a/app/src/main/java/com/kikidan/todakun/TodakunApp.kt +++ b/app/src/main/java/com/kikidan/todakun/TodakunApp.kt @@ -160,6 +160,7 @@ fun TodakunApp( onNavigateToCompatibility = { navigator.push(TodakunRoute.CompatibilityInput) }, onNavigateToDateFortune = { navigator.push(TodakunRoute.DateFortuneInput) }, onNavigateToYearFortune = { navigator.push(TodakunRoute.YearFortuneInput) }, + onNavigateToChat = { navigator.push(TodakunRoute.Chat()) }, ) } diff --git a/feature/home/src/main/java/com/kikidan/home/FortuneReportRoute.kt b/feature/home/src/main/java/com/kikidan/home/FortuneReportRoute.kt index ed58466a..77d561e2 100644 --- a/feature/home/src/main/java/com/kikidan/home/FortuneReportRoute.kt +++ b/feature/home/src/main/java/com/kikidan/home/FortuneReportRoute.kt @@ -39,7 +39,11 @@ fun FortuneReportRoute( onBackClick = onNavigateToBack, onNavigateToLuckAction = onNavigateToLuckAction, onDetailDismiss = viewModel::closeDetail, - onNavigateToChat = onNavigateToChat, + onNavigateToChat = { + // 바텀시트를 띄운 채로 채팅에 진입하면, 채팅에서 뒤로가기 시 백스택 복귀와 함께 바텀시트가 다시 열린다. + viewModel.closeDetail() + onNavigateToChat() + }, onScoreProgressRowClick = viewModel::openDetail, modifier = modifier, ) diff --git a/feature/home/src/main/java/com/kikidan/home/HomeRoute.kt b/feature/home/src/main/java/com/kikidan/home/HomeRoute.kt index 46381353..ff597576 100644 --- a/feature/home/src/main/java/com/kikidan/home/HomeRoute.kt +++ b/feature/home/src/main/java/com/kikidan/home/HomeRoute.kt @@ -22,6 +22,7 @@ fun HomeRoute( onNavigateToCompatibility: () -> Unit, onNavigateToDateFortune: () -> Unit, onNavigateToYearFortune: () -> Unit, + onNavigateToChat: () -> Unit, modifier: Modifier = Modifier, viewModel: HomeViewModel = hiltViewModel(), ) { @@ -46,6 +47,11 @@ fun HomeRoute( onNavigateToCompatibility = onNavigateToCompatibility, onNavigateToDateFortune = onNavigateToDateFortune, onNavigateToYearFortune = onNavigateToYearFortune, + onNavigateToChat = { + // 바텀시트를 띄운 채로 채팅에 진입하면, 채팅에서 뒤로가기 시 백스택 복귀와 함께 바텀시트가 다시 열린다. + viewModel.closeDetail() + onNavigateToChat() + }, modifier = modifier, ) } diff --git a/feature/home/src/main/java/com/kikidan/home/component/FortuneDetailBottomSheet.kt b/feature/home/src/main/java/com/kikidan/home/component/FortuneDetailBottomSheet.kt index 00c8467f..49e6088c 100644 --- a/feature/home/src/main/java/com/kikidan/home/component/FortuneDetailBottomSheet.kt +++ b/feature/home/src/main/java/com/kikidan/home/component/FortuneDetailBottomSheet.kt @@ -45,6 +45,7 @@ import com.kikidan.home.util.categoryLabel internal fun FortuneDetailBottomSheet( detail: DetailSheetUiState, onDismissRequest: () -> Unit, + onAskTodakClick: () -> Unit, modifier: Modifier = Modifier, ) { val screenHeight = @@ -108,9 +109,7 @@ internal fun FortuneDetailBottomSheet( PrimaryButton( modifier = Modifier.fillMaxWidth(), text = stringResource(R.string.home_detail_sheet_cta), - onClick = { - // TODO(#38): 챗봇 연결 미구현, 머지 후 연결 - }, + onClick = onAskTodakClick, size = TodakunButtonSize.Large, ) } @@ -211,6 +210,7 @@ private fun FortuneDetailBottomSheetSuccessPreview() { content = "오늘은 감정 표현이 풍부해지는 날이에요. 주변 사람들과의 교류가 활발해지고, 새로운 인연이 생길 수도 있어요.", ), onDismissRequest = {}, + onAskTodakClick = {}, ) } } diff --git a/feature/home/src/main/java/com/kikidan/home/screen/FortuneReportScreen.kt b/feature/home/src/main/java/com/kikidan/home/screen/FortuneReportScreen.kt index 5af814ba..51eb684a 100644 --- a/feature/home/src/main/java/com/kikidan/home/screen/FortuneReportScreen.kt +++ b/feature/home/src/main/java/com/kikidan/home/screen/FortuneReportScreen.kt @@ -193,6 +193,7 @@ internal fun FortuneReportScreen( FortuneDetailBottomSheet( detail = state.detail, onDismissRequest = onDetailDismiss, + onAskTodakClick = onNavigateToChat, ) } diff --git a/feature/home/src/main/java/com/kikidan/home/screen/HomeScreen.kt b/feature/home/src/main/java/com/kikidan/home/screen/HomeScreen.kt index f2a930e2..9513eedc 100644 --- a/feature/home/src/main/java/com/kikidan/home/screen/HomeScreen.kt +++ b/feature/home/src/main/java/com/kikidan/home/screen/HomeScreen.kt @@ -64,6 +64,7 @@ internal fun HomeScreen( onNavigateToCompatibility: () -> Unit, onNavigateToDateFortune: () -> Unit, onNavigateToYearFortune: () -> Unit, + onNavigateToChat: () -> Unit, modifier: Modifier = Modifier, ) { val backdrop = rememberLayerBackdrop() @@ -117,6 +118,7 @@ internal fun HomeScreen( FortuneDetailBottomSheet( detail = state.detail, onDismissRequest = onDetailDismiss, + onAskTodakClick = onNavigateToChat, ) } @@ -293,6 +295,7 @@ private fun HomeScreenSuccessPreview() { onNavigateToCompatibility = {}, onNavigateToDateFortune = {}, onNavigateToYearFortune = {}, + onNavigateToChat = {}, ) } }