From a5c80e8783667149392cafdfa559f08e0857b6de Mon Sep 17 00:00:00 2001 From: oungsi2000 Date: Mon, 24 Aug 2026 23:38:43 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=9A=B4=EC=84=B8=20=EC=83=81=EC=84=B8?= =?UTF-8?q?=20=EB=B0=94=ED=85=80=EC=8B=9C=ED=8A=B8=20'=ED=86=A0=EB=8B=A5?= =?UTF-8?q?=EC=9D=B4=EC=97=90=EA=B2=8C=20=EB=8D=94=20=EB=AC=BC=EC=96=B4?= =?UTF-8?q?=EB=B3=B4=EA=B8=B0'=20=EB=9D=BC=EC=9A=B0=ED=8C=85=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0=20=EB=B0=8F=20=EB=92=A4=EB=A1=9C=EA=B0=80=EA=B8=B0=20?= =?UTF-8?q?=EC=9E=AC=EB=85=B8=EC=B6=9C=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - FortuneDetailBottomSheet의 CTA 버튼이 TODO(#38)로 비어있어 클릭해도 아무 동작이 없던 문제를 채팅 화면(TodakunRoute.Chat) 라우팅으로 연결 - 바텀시트가 열린 채로 채팅에 진입하면 채팅에서 뒤로가기 시 백스택에 남아있던 detail 상태 때문에 바텀시트가 다시 열리는 버그가 있어, 채팅 이동 전 closeDetail()로 상태를 먼저 비우도록 수정 Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_015do5t4ThrkmdyfYb4gkbCq --- app/src/main/java/com/kikidan/todakun/TodakunApp.kt | 1 + .../src/main/java/com/kikidan/home/FortuneReportRoute.kt | 6 +++++- feature/home/src/main/java/com/kikidan/home/HomeRoute.kt | 6 ++++++ .../com/kikidan/home/component/FortuneDetailBottomSheet.kt | 6 +++--- .../java/com/kikidan/home/screen/FortuneReportScreen.kt | 1 + .../src/main/java/com/kikidan/home/screen/HomeScreen.kt | 3 +++ 6 files changed, 19 insertions(+), 4 deletions(-) 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 = {}, ) } }