From cb6284387666b75b1925a40fa0fe0e3026eb53d1 Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 11:53:31 +0900 Subject: [PATCH 01/12] [REFACTOR]: collectAsState -> collectAsStateWithLifecycle --- .../kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt index 2b6e8f4..5cfe86d 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt @@ -17,7 +17,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.rememberBottomSheetScaffoldState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -69,13 +68,13 @@ fun SearchMenuScreen( val locationPermissionGranted by viewModel.locationPermissionGranted.collectAsStateWithLifecycle() // 지도 중심 좌표 - val currentCenter by viewModel.currentCenter.collectAsState() + val currentCenter by viewModel.currentCenter.collectAsStateWithLifecycle() // 검색기록 - val searchHistory by viewModel.searchHistory.collectAsState() + val searchHistory by viewModel.searchHistory.collectAsStateWithLifecycle() // 핀 위치에 해당하는 메뉴들 - val menusOnPin by viewModel.menusOnPin.collectAsState() + val menusOnPin by viewModel.menusOnPin.collectAsStateWithLifecycle() val density = LocalDensity.current val singleItemHeight = 300.dp // Fixed height for each item From 7c11505c4ee73eac9dab4a9d1dd04b77c12ce26f Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 12:02:08 +0900 Subject: [PATCH 02/12] =?UTF-8?q?[FIX]:=20=EC=A4=91=EA=B4=84=ED=98=B8=20?= =?UTF-8?q?=EC=83=9D=EB=9E=B5=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt b/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt index d86c66f..76886ee 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt @@ -106,6 +106,7 @@ class MainNavController( // My fun navigateToEditMyMealTime(selectedTimes: List) { navController.navigateToEditMyMealTime(selectedTimes) + } // Add Menu fun navigateToAddMenu() { From d2c21c489dc2e68b2556d6d7b66bbb7f42140782 Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 16:16:00 +0900 Subject: [PATCH 03/12] =?UTF-8?q?[REFACTOR]:=20response=EC=97=90=20storeTi?= =?UTF-8?q?tle=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ourmenu/data/model/map/response/MapDetailResponse.kt | 2 ++ .../data/model/map/response/MapMenuDetailResponse.kt | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapDetailResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapDetailResponse.kt index 758cbbc..1d12c5b 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapDetailResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapDetailResponse.kt @@ -11,6 +11,8 @@ data class MapDetailResponse( val menuTitle: String, @SerialName("menuPrice") val menuPrice: Int, + @SerialName("storeTitle") + val storeTitle: String, @SerialName("menuPinImgUrl") val menuPinImgUrl: String, @SerialName("menuTagImgUrls") diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapMenuDetailResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapMenuDetailResponse.kt index f354721..0760d7d 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapMenuDetailResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapMenuDetailResponse.kt @@ -9,6 +9,8 @@ data class MapMenuDetailResponse( val menuId: Int, @SerialName("menuTitle") val menuTitle: String, + @SerialName("storeTitle") + val storeTitld: String, @SerialName("menuPrice") val menuPrice: Int, @SerialName("menuPinImgUrl") @@ -20,11 +22,11 @@ data class MapMenuDetailResponse( @SerialName("menuFolderInfo") val menuFolderInfo: MenuFolderInfo, @SerialName("mapId") - val mapId: Int, + val mapId: Long, @SerialName("mapX") - val mapX: Int, + val mapX: Double, @SerialName("mapY") - val mapY: Int, + val mapY: Double, ) From c9ac09a9737a276d8d9b7d8b3bde7b0bfc27e024 Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 16:17:06 +0900 Subject: [PATCH 04/12] =?UTF-8?q?[REFACTOR]:=20storeTitle=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EA=B2=B0=EA=B3=BC=20ui=EC=97=90=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/common/bottomsheet/MenuInfoBottomSheetContent.kt | 3 ++- .../com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt | 1 + .../ui/searchmenu/component/SearchBottomSheetContent.kt | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/bottomsheet/MenuInfoBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/bottomsheet/MenuInfoBottomSheetContent.kt index be7ff3d..5772ee3 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/bottomsheet/MenuInfoBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/bottomsheet/MenuInfoBottomSheetContent.kt @@ -114,7 +114,7 @@ fun MenuInfoContent( ) } Text( - text = "응답에 가게명 누락", // TODO: 가게명 처리 + text = menuInfoData.storeTitle, style = ourMenuTypography().pretendard_600_14.copy( lineHeight = 12.sp, color = Neutral500 @@ -187,6 +187,7 @@ private fun MenuInfoBottomSheetContentPreview() { menuInfoData = MapDetailResponse( menuId = 1, menuTitle = "Test Menu", + storeTitle = "가게 이름", menuPrice = 10000, menuPinImgUrl = "pin", menuTagImgUrls = listOf("한식", "밥"), diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt index 636b26b..7c1f284 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt @@ -64,6 +64,7 @@ fun MenuInfoMapScreen(navController: NavController) { menuInfoData = MapDetailResponse( menuId = 1, menuTitle = "Test Menu", + storeTitle = "가게 이름", menuPrice = 10000, menuPinImgUrl = "pin", menuTagImgUrls = listOf("한식", "밥"), diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchBottomSheetContent.kt index 0c49339..5f4b87e 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchBottomSheetContent.kt @@ -39,6 +39,7 @@ private fun SearchBottomSheetContentPreview() { MapDetailResponse( menuId = 1, menuTitle = "Test Menu", + storeTitle = "가게 이름", menuPrice = 10000, menuPinImgUrl = "pin", menuTagImgUrls = listOf("한식", "밥"), From 4a102b4a8f758f9090cc9524f3521799bc62c3fb Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 16:18:45 +0900 Subject: [PATCH 05/12] =?UTF-8?q?[REFACTOR]:=20=EB=A9=94=EB=89=B4=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=EC=97=90=20=EC=82=AC=EC=9A=A9=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20ui=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/searchmenu/component/SearchHistory.kt | 89 ++++++++++++------- .../ui/searchmenu/screen/SearchMenuScreen.kt | 22 ++--- 2 files changed, 67 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt index 6da3f16..f2f901b 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt @@ -23,7 +23,8 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.kuit.ourmenu.R -import com.kuit.ourmenu.ui.searchmenu.model.SearchHistoryData +import com.kuit.ourmenu.data.model.map.response.MapSearchHistoryResponse +import com.kuit.ourmenu.ui.theme.Neutral300 import com.kuit.ourmenu.ui.theme.Neutral500 import com.kuit.ourmenu.ui.theme.Neutral700 import com.kuit.ourmenu.ui.theme.ourMenuTypography @@ -31,8 +32,8 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun SearchHistoryList( modifier: Modifier = Modifier, + historyList: List?, onClick: () -> Unit = {}, - historyList: List ) { val lazyListState = rememberLazyListState() @@ -41,28 +42,53 @@ fun SearchHistoryList( .fillMaxWidth() .padding(top = 68.dp) ) { - Text( - text = "최근 검색", - style = ourMenuTypography().pretendard_600_16.copy( - lineHeight = 20.sp, - color = Neutral700 - ), - modifier = modifier - .padding(bottom = 4.dp) - .padding(horizontal = 28.dp) - ) - LazyColumn( - state = lazyListState - ) { - - items(historyList.size) { index -> - SearchHistoryItem( - historyData = historyList[index], - onClick = onClick + if (historyList == null || historyList.isEmpty()) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(top = 68.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Icon( + painter = painterResource(R.drawable.ic_addmenu_noresult), + contentDescription = "no result", + tint = Color.Unspecified + ) + Text( + text = stringResource(R.string.no_result), + style = ourMenuTypography().pretendard_600_14, + color = Neutral500, + modifier = Modifier.padding(top = 8.dp) ) + } + } else { + Text( + text = "최근 검색", + style = ourMenuTypography().pretendard_600_16.copy( + lineHeight = 20.sp, + color = Neutral700 + ), + modifier = modifier + .padding(bottom = 4.dp) + .padding(horizontal = 28.dp) + ) + LazyColumn( + state = lazyListState + ) { + + items(historyList.size) { index -> + SearchHistoryItem( + historyData = historyList[index], + onClick = onClick + ) - if (index != historyList.size - 1) { - HorizontalDivider() + if (index != historyList.size - 1) { + HorizontalDivider( + thickness = 1.dp, + color = Neutral300, + modifier = Modifier.fillMaxWidth() + ) + } } } } @@ -72,7 +98,7 @@ fun SearchHistoryList( @Composable fun SearchHistoryItem( modifier: Modifier = Modifier, - historyData: SearchHistoryData, + historyData: MapSearchHistoryResponse, onClick: () -> Unit ) { @@ -115,7 +141,7 @@ fun SearchHistoryItem( .wrapContentHeight(align = Alignment.CenterVertically) ) Text( - text = stringResource(R.string.neungdongro_112), + text = historyData.storeAddress, style = ourMenuTypography().pretendard_600_14.copy( lineHeight = 20.sp, color = Neutral500 @@ -135,20 +161,23 @@ fun SearchHistoryItem( private fun SearchHistoryPreview() { SearchHistoryList( historyList = listOf( - SearchHistoryData( + MapSearchHistoryResponse( menuTitle = "피자", storeTitle = "피자헛", - address = "서울특별시 강남구 역삼동 123-4" + menuId = 1, + storeAddress = "서울특별시 강남구 역삼동 123-4" ), - SearchHistoryData( + MapSearchHistoryResponse( menuTitle = "치킨", storeTitle = "굽네치킨", - address = "서울특별시 강남구 역삼동 123-4" + menuId = 2, + storeAddress = "서울특별시 강남구 역삼동 456-7" ), - SearchHistoryData( + MapSearchHistoryResponse( menuTitle = "햄버거", storeTitle = "맥도날드", - address = "서울특별시 강남구 역삼동 123-4" + menuId = 3, + storeAddress = "서울특별시 강남구 역삼동 987-6" ) ), ) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt index 5cfe86d..2a6ef0b 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt @@ -20,6 +20,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment @@ -41,7 +42,6 @@ import com.kuit.ourmenu.ui.common.map.mapViewWithLifecycle import com.kuit.ourmenu.ui.common.topappbar.OurMenuAddButtonTopAppBar import com.kuit.ourmenu.ui.searchmenu.component.SearchBottomSheetContent import com.kuit.ourmenu.ui.searchmenu.component.SearchHistoryList -import com.kuit.ourmenu.ui.searchmenu.model.SearchHistoryData import com.kuit.ourmenu.ui.searchmenu.viewmodel.SearchMenuViewModel import com.kuit.ourmenu.ui.theme.NeutralWhite import com.kuit.ourmenu.utils.PermissionHandler @@ -63,6 +63,7 @@ fun SearchMenuScreen( var searchActionDone by rememberSaveable { mutableStateOf(false) } val interactionSource = remember { MutableInteractionSource() } val searchBarFocused by interactionSource.collectIsFocusedAsState() + val scope = rememberCoroutineScope() val focusManager = LocalFocusManager.current val context = LocalContext.current val locationPermissionGranted by viewModel.locationPermissionGranted.collectAsStateWithLifecycle() @@ -119,10 +120,11 @@ fun SearchMenuScreen( if (searchBarFocused) { showSearchBackground = true showBottomSheet = false - - // Fetch crawling history when search field is focused - launch { + + // 검색 기록 조회 + scope.launch { viewModel.getSearchHistory() + Log.d("SearchMenuScreen", "검색 기록 조회: $searchHistory") } } } @@ -177,16 +179,8 @@ fun SearchMenuScreen( ) } } else { - val historyDataList = searchHistory?.map { history -> - SearchHistoryData( - menuTitle = history.menuTitle, - storeTitle = history.storeAddress.split(',').firstOrNull() ?: "", - address = history.storeAddress - ) - } ?: emptyList() - SearchHistoryList( - historyList = historyDataList, + historyList = searchHistory, onClick = { // 크롤링 기록 아이템 클릭시 동작 showSearchBackground = false @@ -238,7 +232,7 @@ fun SearchMenuScreen( .align(Alignment.BottomEnd) .padding(bottom = 16.dp, end = 20.dp), onClick = { - // TODO: 임시로 설정해놓은 카메라 이동 + // TODO: 임시로 설정해놓은 카메라 이동, 실제로는 네이버 지도에 해당 가게 검색 결과로 이동 viewModel.moveCamera(37.5416, 127.0793) }, ) From 6e194ae8b3fdeca97a1f5a239addffab4b20afff Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 16:50:38 +0900 Subject: [PATCH 06/12] =?UTF-8?q?[REFACTOR]:=20=EB=A9=94=EB=89=B4=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=20=EA=B8=B0=EB=A1=9D=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=ED=85=9C=20=ED=81=B4=EB=A6=AD=EC=8B=9C=20=ED=95=B4=EB=8B=B9=20?= =?UTF-8?q?=ED=95=80=EC=9C=BC=EB=A1=9C=20focus=20=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/response/MapSearchHistoryResponse.kt | 2 +- .../ui/searchmenu/component/SearchHistory.kt | 6 +++--- .../ui/searchmenu/screen/SearchMenuScreen.kt | 4 +++- .../searchmenu/viewmodel/SearchMenuViewModel.kt | 17 ++++++++++++++--- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapSearchHistoryResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapSearchHistoryResponse.kt index 8480fa9..40346cb 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapSearchHistoryResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapSearchHistoryResponse.kt @@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable @Serializable data class MapSearchHistoryResponse( @SerialName("menuId") - val menuId: Int, + val menuId: Long, @SerialName("menuTitle") val menuTitle: String, @SerialName("storeTitle") diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt index f2f901b..85743c5 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt @@ -33,7 +33,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography fun SearchHistoryList( modifier: Modifier = Modifier, historyList: List?, - onClick: () -> Unit = {}, + onClick: (Long) -> Unit = {}, ) { val lazyListState = rememberLazyListState() @@ -99,13 +99,13 @@ fun SearchHistoryList( fun SearchHistoryItem( modifier: Modifier = Modifier, historyData: MapSearchHistoryResponse, - onClick: () -> Unit + onClick: (Long) -> Unit ) { Column( modifier = modifier .fillMaxWidth() - .clickable(onClick = onClick) + .clickable(onClick = { onClick(historyData.menuId) }) .padding(vertical = 20.dp, horizontal = 28.dp) ) { Text( diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt index 2a6ef0b..a07dcf0 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt @@ -181,8 +181,10 @@ fun SearchMenuScreen( } else { SearchHistoryList( historyList = searchHistory, - onClick = { + onClick = { menuId -> // 크롤링 기록 아이템 클릭시 동작 + viewModel.getMapMenuDetail(menuId) + Log.d("SearchMenuScreen", "검색 기록 아이템 클릭: $menuId") showSearchBackground = false showBottomSheet = true } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/viewmodel/SearchMenuViewModel.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/viewmodel/SearchMenuViewModel.kt index 552d47e..e719bc5 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/viewmodel/SearchMenuViewModel.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/viewmodel/SearchMenuViewModel.kt @@ -313,11 +313,22 @@ class SearchMenuViewModel @Inject constructor( } } - fun getMapMenuDetail(menuId: Long){ + fun getMapMenuDetail(menuId: Long) { viewModelScope.launch { val response = mapRepository.getMapMenuDetail(menuId) - response.onSuccess { - Log.d("SearchMenuViewModel", "메뉴 상세 조회 성공: $it") + response.onSuccess { menuDetail -> + Log.d("SearchMenuViewModel", "메뉴 상세 조회 성공: $menuDetail") + + // myMenus에서 해당 menuId를 가진 메뉴의 위치 정보 찾기 + myMenus.value?.find { it.mapId == menuId }?.let { menu -> + // 해당 위치로 카메라 이동 + moveCamera(menu.mapY, menu.mapX) + // 해당 핀을 활성화 상태로 변경 + _activeMapId.value = menuId + refreshMarkers() + // 메뉴 상세 정보를 바텀시트에 표시하기 위해 설정 + getMapDetail(menuId) + } }.onFailure { Log.d("SearchMenuViewModel", "메뉴 상세 조회 실패: ${it.message}") } From 023607c244181a42d0247680d836b38ea31f0136 Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 17:23:41 +0900 Subject: [PATCH 07/12] =?UTF-8?q?[REFACTOR]:=20=EA=B8=B0=EC=A1=B4=EC=9D=98?= =?UTF-8?q?=20menuId=EB=A5=BC=20Int=20->=20Long=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kuit/ourmenu/data/repository/MenuInfoRepository.kt | 2 +- .../main/java/com/kuit/ourmenu/data/service/MapService.kt | 6 +++--- .../java/com/kuit/ourmenu/data/service/MenuInfoService.kt | 2 +- .../kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt | 4 +++- .../kuit/ourmenu/ui/menuinfo/viewmodel/MenuInfoViewModel.kt | 4 ++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/data/repository/MenuInfoRepository.kt b/app/src/main/java/com/kuit/ourmenu/data/repository/MenuInfoRepository.kt index 226d8d4..fbe7f0c 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/repository/MenuInfoRepository.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/repository/MenuInfoRepository.kt @@ -10,7 +10,7 @@ class MenuInfoRepository @Inject constructor( private val menuInfoService: MenuInfoService ) { suspend fun getMenuInfo( - menuId: Int + menuId: Long ) = runCatching { menuInfoService.getMenuInfo(menuId).handleBaseResponse().getOrThrow() } diff --git a/app/src/main/java/com/kuit/ourmenu/data/service/MapService.kt b/app/src/main/java/com/kuit/ourmenu/data/service/MapService.kt index 2f0034a..d6c1e2c 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/service/MapService.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/service/MapService.kt @@ -18,15 +18,15 @@ interface MapService { @GET("api/users/menus/{mapId}/maps") suspend fun getMapDetail( @Path("mapId") mapId: Long - ): BaseResponse> // TODO: 리팩토링 + ): BaseResponse> @GET("api/users/menus/maps") - suspend fun getMap(): BaseResponse> // TODO: 리팩토링 + suspend fun getMap(): BaseResponse> @GET("api/users/menus/maps/{menuId}/search") suspend fun getMapMenuDetail( @Path("menuId") menuId: Long - ): BaseResponse // TODO: 리팩토링 + ): BaseResponse @GET("api/users/menus/maps/search") suspend fun getMapSearch( diff --git a/app/src/main/java/com/kuit/ourmenu/data/service/MenuInfoService.kt b/app/src/main/java/com/kuit/ourmenu/data/service/MenuInfoService.kt index 2826bf4..f545300 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/service/MenuInfoService.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/service/MenuInfoService.kt @@ -8,6 +8,6 @@ import retrofit2.http.Path interface MenuInfoService { @GET("api/menus/{menuId}") suspend fun getMenuInfo( - @Path("menuId") menuId: Int + @Path("menuId") menuId: Long ): BaseResponse } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt index 7c1f284..c604905 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoMapScreen.kt @@ -78,7 +78,9 @@ fun MenuInfoMapScreen(navController: NavController) { mapX = 127.0, mapY = 37.0 ) - ) + ){ + + } }, sheetPeekHeight = bottomSheetContentHeight, ) { innerPaddings -> diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/viewmodel/MenuInfoViewModel.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/viewmodel/MenuInfoViewModel.kt index beca0b3..bb03a14 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/viewmodel/MenuInfoViewModel.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/viewmodel/MenuInfoViewModel.kt @@ -17,7 +17,7 @@ class MenuInfoViewModel @Inject constructor( private val _menuInfo = MutableStateFlow(MenuInfoResponse()) val menuInfo = _menuInfo.asStateFlow() - private val _menuId = MutableStateFlow(0) + private val _menuId = MutableStateFlow(0) val menuId = _menuId.asStateFlow() private val _error: MutableStateFlow = MutableStateFlow(null) @@ -27,7 +27,7 @@ class MenuInfoViewModel @Inject constructor( val isLoading = _isLoading.asStateFlow() fun getMenuInfo( - menuId: Int + menuId: Long ) { _menuId.value = menuId From f6b62253b9a28acf56febe679cb7703d103816ba Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 17:30:15 +0900 Subject: [PATCH 08/12] =?UTF-8?q?[REFACTOR]:=20menuId,=20menuFolderId?= =?UTF-8?q?=EB=A5=BC=20Int=20->=20Long=EC=9C=BC=EB=A1=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kuit/ourmenu/data/repository/MenuFolderRepository.kt | 2 +- .../java/com/kuit/ourmenu/data/service/MenuFolderService.kt | 2 +- .../ui/menuFolder/navigation/MenuFolderNavigation.kt | 4 ++-- .../ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt | 2 +- .../ui/menuFolder/viewmodel/MenuFolderDetailViewModel.kt | 6 +++--- .../java/com/kuit/ourmenu/ui/navigator/MainNavController.kt | 2 +- app/src/main/java/com/kuit/ourmenu/ui/navigator/Routes.kt | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/data/repository/MenuFolderRepository.kt b/app/src/main/java/com/kuit/ourmenu/data/repository/MenuFolderRepository.kt index 0f9fe24..ae19dcc 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/repository/MenuFolderRepository.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/repository/MenuFolderRepository.kt @@ -14,7 +14,7 @@ class MenuFolderRepository @Inject constructor( } suspend fun getMenuFolderDetail( - menuFolderId: Int, + menuFolderId: Long, sortOrder: String, ) = runCatching { menuFolderService.getMenuFolderDetails( diff --git a/app/src/main/java/com/kuit/ourmenu/data/service/MenuFolderService.kt b/app/src/main/java/com/kuit/ourmenu/data/service/MenuFolderService.kt index 91d8c6a..5255420 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/service/MenuFolderService.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/service/MenuFolderService.kt @@ -14,7 +14,7 @@ interface MenuFolderService { @GET("api/menu-folders/{menuFolderId}/menus") suspend fun getMenuFolderDetails( - @Path("menuFolderId") menuFolderId: Int, + @Path("menuFolderId") menuFolderId: Long, @Query("sortOrder") sortOrder: String, ): BaseResponse diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt index e014e3a..e3ed916 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt @@ -16,7 +16,7 @@ fun NavController.navigateToMenuFolder(navOptions: NavOptions) { } // 이동 이벤트 (menuFolderId 전달) -fun NavController.navigateToMenuFolderDetail(menuFolderId: Int) { +fun NavController.navigateToMenuFolderDetail(menuFolderId: Long) { navigate(Routes.MenuFolderDetail(menuFolderId)) } @@ -28,7 +28,7 @@ fun NavController.navigateToAddMenu() { navigate(Routes.AddMenu) } -fun NavController.navigateToMenuInfo(menuId: Int) { +fun NavController.navigateToMenuInfo(menuId: Long) { navigate(Routes.MenuInfo(menuId)) } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt index c3733a9..12f19d8 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt @@ -45,7 +45,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun MenuFolderDetailScreen( - menuFolderId: Int, + menuFolderId: Long, onNavigateToMenuInfo: (Int) -> Unit, // onNavigateToMap: () -> Unit, // TODO: Map으로 화면 이동 구현 onNavigateToAddMenu: () -> Unit, diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/viewmodel/MenuFolderDetailViewModel.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/viewmodel/MenuFolderDetailViewModel.kt index d06e221..ec799b1 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/viewmodel/MenuFolderDetailViewModel.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/viewmodel/MenuFolderDetailViewModel.kt @@ -18,7 +18,7 @@ class MenuFolderDetailViewModel @Inject constructor( private val _menuFolderDetail = MutableStateFlow(MenuFolderDetailResponse()) val menuFolderDetail = _menuFolderDetail.asStateFlow() - private val _menuFolderId = MutableStateFlow(0) + private val _menuFolderId = MutableStateFlow(0) val menuFolderId = _menuFolderId.asStateFlow() private val _sortOrder = MutableStateFlow(SortOrderType.TITLE_ASC) @@ -31,7 +31,7 @@ class MenuFolderDetailViewModel @Inject constructor( val isLoading = _isLoading.asStateFlow() fun getMenuFolderDetail( - menuFolderId: Int, + menuFolderId: Long, sortOrder: SortOrderType = _sortOrder.value ) { _menuFolderId.value = menuFolderId @@ -57,7 +57,7 @@ class MenuFolderDetailViewModel @Inject constructor( } } - fun updateSortOrder(sortOrderType: SortOrderType, menuFolderId: Int) { + fun updateSortOrder(sortOrderType: SortOrderType, menuFolderId: Long) { if (_sortOrder.value != sortOrderType) { _sortOrder.value = sortOrderType getMenuFolderDetail(menuFolderId, sortOrderType) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt b/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt index af08df6..cf566e9 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt @@ -95,7 +95,7 @@ class MainNavController( } // Menu Folder - fun navigateToMenuFolderDetail(menuFolderId: Int) { + fun navigateToMenuFolderDetail(menuFolderId: Long) { navController.navigateToMenuFolderDetail(menuFolderId) } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/navigator/Routes.kt b/app/src/main/java/com/kuit/ourmenu/ui/navigator/Routes.kt index 85afe2d..00b7b8e 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/navigator/Routes.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/navigator/Routes.kt @@ -8,13 +8,13 @@ sealed interface Routes{ @Serializable data object MenuFolder: Routes @Serializable - data class MenuFolderDetail(val menuFolderId: Int): Routes + data class MenuFolderDetail(val menuFolderId: Long): Routes @Serializable data object MenuFolderAllMenu: Routes // 메뉴 @Serializable - data class MenuInfo(val menuId: Int): Routes + data class MenuInfo(val menuId: Long): Routes @Serializable data object MenuInfoMap: Routes From 561bb69dfdcb10a6e7ce84c76fb2a8dc5161c52d Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 18:19:13 +0900 Subject: [PATCH 09/12] =?UTF-8?q?[REFACTOR]:=20id=EA=B0=92=20Int=20->=20Lo?= =?UTF-8?q?ng=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kuit/ourmenu/data/model/map/response/MapDetailResponse.kt | 2 +- .../data/model/menuFolder/response/MenuFolderAllResponse.kt | 2 +- .../model/menuFolder/response/MenuFolderDetailResponse.kt | 2 +- .../data/model/menuFolder/response/MenuFolderMenuItem.kt | 2 +- .../data/model/menuFolder/response/MenuFolderResponse.kt | 2 +- .../ourmenu/data/model/menuinfo/response/MenuInfoResponse.kt | 4 +++- .../ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt | 4 ++-- .../ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt | 2 +- .../com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderScreen.kt | 2 +- .../kuit/ourmenu/ui/menuinfo/navigation/MenuInfoNavigation.kt | 4 ++-- .../java/com/kuit/ourmenu/ui/navigator/MainNavController.kt | 2 +- 11 files changed, 15 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapDetailResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapDetailResponse.kt index 1d12c5b..c616bb6 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapDetailResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapDetailResponse.kt @@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable @Serializable data class MapDetailResponse( @SerialName("menuId") - val menuId: Int, + val menuId: Long, @SerialName("menuTitle") val menuTitle: String, @SerialName("menuPrice") diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderAllResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderAllResponse.kt index 0ec4a34..931673d 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderAllResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderAllResponse.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.Serializable @Serializable data class MenuFolderAllResponse( - override val menuId: Int, + override val menuId: Long, override val menuTitle: String, override val storeTitle: String, override val storeAddress: String, diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderDetailResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderDetailResponse.kt index 8e7f2d1..09a5166 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderDetailResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderDetailResponse.kt @@ -13,7 +13,7 @@ data class MenuFolderDetailResponse( @Serializable data class MenuFolderDetailMenus( - override val menuId: Int = 0, + override val menuId: Long = 0, override val menuTitle: String = "", override val storeTitle: String = "", override val storeAddress: String = "", diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderMenuItem.kt b/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderMenuItem.kt index fc9cc53..caf3923 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderMenuItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderMenuItem.kt @@ -1,7 +1,7 @@ package com.kuit.ourmenu.data.model.menuFolder.response interface MenuFolderMenuItem { - val menuId: Int + val menuId: Long val menuTitle: String val storeTitle: String val storeAddress: String diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderResponse.kt index 0ca5a66..ba24a0c 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/menuFolder/response/MenuFolderResponse.kt @@ -10,7 +10,7 @@ data class MenuFolderResponse( @Serializable data class MenuFolderList( - val menuFolderId: Int, + val menuFolderId: Long, val menuFolderTitle: String, val menuFolderImgUrl: String, val menuFolderIconImgUrl: String, diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/menuinfo/response/MenuInfoResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/menuinfo/response/MenuInfoResponse.kt index 2d38185..c75e3d3 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/menuinfo/response/MenuInfoResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/menuinfo/response/MenuInfoResponse.kt @@ -4,10 +4,12 @@ import kotlinx.serialization.Serializable @Serializable data class MenuInfoResponse( - val menuId: Int = 0, + val menuId: Long = 0, val menuTitle: String = "", val menuPrice: Int = 0, val menuPinImgUrl: String = "", + val menuMemoTitle: String = "", + val menuMemoContent: String = "", val storeTitle: String = "", val storeAddress: String = "", val tagImgUrls: List = emptyList(), diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt index e3ed916..7db7190 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/navigation/MenuFolderNavigation.kt @@ -34,9 +34,9 @@ fun NavController.navigateToMenuInfo(menuId: Long) { fun NavGraphBuilder.menuFolderNavGraph( navigateBack: () -> Unit, - navigateToMenuFolderDetail: (Int) -> Unit, + navigateToMenuFolderDetail: (Long) -> Unit, navigateToMenuFolderAllMenu: () -> Unit, - navigateToMenuInfo: (Int) -> Unit, + navigateToMenuInfo: (Long) -> Unit, navigateToAddMenu: () -> Unit, ) { composable { diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt index 12f19d8..1915b83 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderDetailScreen.kt @@ -46,7 +46,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun MenuFolderDetailScreen( menuFolderId: Long, - onNavigateToMenuInfo: (Int) -> Unit, + onNavigateToMenuInfo: (Long) -> Unit, // onNavigateToMap: () -> Unit, // TODO: Map으로 화면 이동 구현 onNavigateToAddMenu: () -> Unit, onNavigateBack: () -> Unit, diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderScreen.kt index c8e2581..6097174 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderScreen.kt @@ -37,7 +37,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun MenuFolderScreen( - onNavigateToDetail: (Int) -> Unit, + onNavigateToDetail: (Long) -> Unit, onNavigateToAllMenu: () -> Unit, onNavigateToAddMenu: () -> Unit, viewModel: MenuFolderViewModel = hiltViewModel() diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/navigation/MenuInfoNavigation.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/navigation/MenuInfoNavigation.kt index cddeeab..023204b 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/navigation/MenuInfoNavigation.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/navigation/MenuInfoNavigation.kt @@ -7,13 +7,13 @@ import androidx.navigation.toRoute import com.kuit.ourmenu.ui.menuinfo.screen.MenuInfoDefaultScreen import com.kuit.ourmenu.ui.navigator.Routes -fun NavController.navigateToMenuInfo(menuId: Int) { +fun NavController.navigateToMenuInfo(menuId: Long) { navigate(Routes.MenuInfo(menuId)) } fun NavGraphBuilder.menuInfoNavGraph( navigateBack: () -> Unit, - navigateToMenuFolderDetail: (Int) -> Unit, + navigateToMenuFolderDetail: (Long) -> Unit, navigateToMenuInfoMap: () -> Unit ) { composable { diff --git a/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt b/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt index cf566e9..eb706d9 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavController.kt @@ -118,7 +118,7 @@ class MainNavController( } // Menu Info - fun navigateToMenuInfo(menuId: Int) { + fun navigateToMenuInfo(menuId: Long) { navController.navigateToMenuInfo(menuId) } From eaffbe693de3c78bdcaaf5097d883f70be6c963c Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 18:23:19 +0900 Subject: [PATCH 10/12] =?UTF-8?q?[FEAT]:=20=EB=A9=94=EB=89=B4=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=EC=A0=95=EB=B3=B4=20=ED=99=94=EB=A9=B4=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EA=B0=92=20ui?= =?UTF-8?q?=EC=97=90=20=EB=B0=98=EC=98=81,=20=EB=84=A4=EB=B9=84=EA=B2=8C?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=9D=B8=EC=9E=90=20=EC=A0=84=EB=8B=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menuinfo/screen/MenuInfoDefaultScreen.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoDefaultScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoDefaultScreen.kt index b0f97e0..630cd74 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoDefaultScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuinfo/screen/MenuInfoDefaultScreen.kt @@ -23,16 +23,15 @@ import com.kuit.ourmenu.ui.menuinfo.component.info.MenuInfoChipContent import com.kuit.ourmenu.ui.menuinfo.component.info.MenuInfoContent import com.kuit.ourmenu.ui.menuinfo.component.info.MenuInfoImagePager import com.kuit.ourmenu.ui.menuinfo.component.info.MenuInfoMapButton -import com.kuit.ourmenu.ui.menuinfo.dummy.MenuInfoDummyData import com.kuit.ourmenu.ui.menuinfo.viewmodel.MenuInfoViewModel import com.kuit.ourmenu.ui.theme.Neutral300 import com.kuit.ourmenu.ui.theme.NeutralWhite @Composable fun MenuInfoDefaultScreen( - menuId: Int, + menuId: Long, onNavigateBack: () -> Unit, - onNavigateToMenuFolderDetail: (Int) -> Unit, + onNavigateToMenuFolderDetail: (Long) -> Unit, // onNavigateToMap: () -> Unit, viewModel: MenuInfoViewModel = hiltViewModel() ) { @@ -73,15 +72,15 @@ fun MenuInfoDefaultScreen( ) MenuInfoChipContent( - onNavigateToMenuFolderDetail = onNavigateToMenuFolderDetail, + // TODO: 메뉴 폴더 정보에 따라 변경 필요, 여러개인 경우 각 폴더에 대한 이동 구현 +// onNavigateToMenuFolderDetail = onNavigateToMenuFolderDetail(menuInfo.menuFolders.), menuInfoData = menuInfo ) MenuInfoAdditionalContent( address = menuInfo.storeAddress, - // TODO: 메뉴 정보에 따라 변경 필요 - memoTitle = MenuInfoDummyData.dummyData.memoTitle, - memoContent = MenuInfoDummyData.dummyData.memoContent + memoTitle = menuInfo.menuMemoTitle, + memoContent = menuInfo.menuMemoContent ) } MenuInfoMapButton( @@ -105,4 +104,11 @@ private fun MenuInfoDefaultPreview() { // val navController = rememberNavController() // // MenuInfoDefaultScreen(navController) + val viewModel: MenuInfoViewModel = hiltViewModel() + MenuInfoDefaultScreen( + menuId = 1, + onNavigateBack = {}, + onNavigateToMenuFolderDetail = {}, + viewModel = viewModel + ) } \ No newline at end of file From 4d8124250a275960decfe99a125f246243ad773e Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 1 Aug 2025 18:24:14 +0900 Subject: [PATCH 11/12] =?UTF-8?q?[FEAT]:=20=EA=B2=80=EC=83=89=EB=90=9C=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20=ED=81=B4=EB=A6=AD=EC=8B=9C=20=EB=A9=94?= =?UTF-8?q?=EB=89=B4=20=EC=83=81=EC=84=B8=EC=A0=95=EB=B3=B4=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=EC=9C=BC=EB=A1=9C=EC=9D=98=20=EB=84=A4=EB=B9=84?= =?UTF-8?q?=EA=B2=8C=EC=9D=B4=EC=85=98=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bottomsheet/MenuInfoBottomSheetContent.kt | 13 +++++++++++-- .../ui/menuFolder/screen/MenuFolderAllMenuScreen.kt | 2 +- .../com/kuit/ourmenu/ui/navigator/MainNavHost.kt | 2 +- .../component/SearchBottomSheetContent.kt | 12 +++++++++--- .../searchmenu/navigation/SearchMenuNavigation.kt | 7 ++++--- .../ui/searchmenu/screen/SearchMenuScreen.kt | 12 ++++++++++-- 6 files changed, 36 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/bottomsheet/MenuInfoBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/bottomsheet/MenuInfoBottomSheetContent.kt index 5772ee3..a72e025 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/bottomsheet/MenuInfoBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/bottomsheet/MenuInfoBottomSheetContent.kt @@ -1,6 +1,8 @@ package com.kuit.ourmenu.ui.common.bottomsheet +import android.util.Log import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -38,12 +40,17 @@ import com.kuit.ourmenu.utils.ExtensionUtil.toWon @Composable fun MenuInfoBottomSheetContent( modifier: Modifier = Modifier, - menuInfoData: MapDetailResponse + menuInfoData: MapDetailResponse, + onClick: (Long) -> Unit ) { Column( modifier = modifier .fillMaxWidth() .padding(horizontal = 20.dp) + .clickable { + Log.d("MenuInfoBottomSheetContent", "Menu ID: ${menuInfoData.menuId}") + onClick(menuInfoData.menuId) + } ) { MenuInfoContent( modifier = Modifier @@ -201,5 +208,7 @@ private fun MenuInfoBottomSheetContentPreview() { mapX = 127.0, mapY = 37.0 ) - ) + ){ + // 클릭시 동작 + } } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderAllMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderAllMenuScreen.kt index 9d69c18..00b7987 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderAllMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/menuFolder/screen/MenuFolderAllMenuScreen.kt @@ -56,7 +56,7 @@ import kotlinx.coroutines.launch @Composable fun MenuFolderAllMenuScreen( onNavigateBack: () -> Unit, - onNavigateToMenuInfo: (Int) -> Unit, + onNavigateToMenuInfo: (Long) -> Unit, // onNavigateToMap: () -> Unit, // TODO: Map으로 화면 이동 구현 onNavigateToAddMenu: () -> Unit, viewModel: MenuFolderAllViewModel = hiltViewModel() diff --git a/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavHost.kt b/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavHost.kt index 2a914ea..e4ec3d9 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavHost.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/navigator/MainNavHost.kt @@ -73,7 +73,7 @@ fun MainNavHost( ) searchMenuNavGraph( - padding = padding, + navigateToMenuDetail = navController::navigateToMenuInfo, ) myNavGraph( diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchBottomSheetContent.kt index 5f4b87e..bf894f2 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchBottomSheetContent.kt @@ -14,7 +14,8 @@ import com.kuit.ourmenu.ui.common.bottomsheet.MenuInfoBottomSheetContent @Composable fun SearchBottomSheetContent( modifier: Modifier = Modifier, - dataList: List + dataList: List, + onItemClick: (Long) -> Unit ) { LazyColumn( modifier = modifier @@ -22,7 +23,10 @@ fun SearchBottomSheetContent( items(dataList.size) { index -> MenuInfoBottomSheetContent( modifier = Modifier.padding(vertical = 20.dp), - menuInfoData = dataList[index] + menuInfoData = dataList[index], + onClick = { menuId -> + onItemClick(menuId) + } ) if (index != dataList.size - 1) { HorizontalDivider() @@ -54,5 +58,7 @@ private fun SearchBottomSheetContentPreview() { mapY = 37.0 ) ) - ) + ){ + + } } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/navigation/SearchMenuNavigation.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/navigation/SearchMenuNavigation.kt index 57130b1..c461a6b 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/navigation/SearchMenuNavigation.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/navigation/SearchMenuNavigation.kt @@ -1,6 +1,5 @@ package com.kuit.ourmenu.ui.searchmenu.navigation -import androidx.compose.foundation.layout.PaddingValues import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.NavOptions @@ -13,10 +12,12 @@ fun NavController.navigateToSearchMenu(navOptions: NavOptions) { } fun NavGraphBuilder.searchMenuNavGraph( - padding: PaddingValues, // navigate 이벤트 + navigateToMenuDetail: (Long) -> Unit, ) { composable { - SearchMenuScreen() + SearchMenuScreen( + onNavigateToMenuDetail = navigateToMenuDetail + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt index a07dcf0..9111aef 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt @@ -52,6 +52,7 @@ import kotlinx.coroutines.launch fun SearchMenuScreen( modifier: Modifier = Modifier, viewModel: SearchMenuViewModel = hiltViewModel(), + onNavigateToMenuDetail: (Long) -> Unit ) { val scaffoldState = rememberBottomSheetScaffoldState() @@ -143,7 +144,11 @@ fun SearchMenuScreen( sheetContent = { SearchBottomSheetContent( modifier = Modifier.fillMaxWidth(), - dataList = menusOnPin ?: emptyList() + dataList = menusOnPin ?: emptyList(), + onItemClick = { menuId -> + Log.d("SearchMenuScreen", "바텀 시트 메뉴 아이템 클릭: $menuId") + onNavigateToMenuDetail(menuId) + } ) }, sheetContainerColor = NeutralWhite, @@ -246,5 +251,8 @@ fun SearchMenuScreen( @Preview(showBackground = true) @Composable private fun SearchMenuScreenPreview() { - SearchMenuScreen() + SearchMenuScreen( + ){ + + } } \ No newline at end of file From e7bb0c556cd1c68590bbd994fc0edf7c690e6522 Mon Sep 17 00:00:00 2001 From: casperjr Date: Wed, 13 Aug 2025 14:40:47 +0900 Subject: [PATCH 12/12] =?UTF-8?q?[fix]:=20=EC=98=A4=ED=83=80=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetSelector.xml | 11 ----------- .../data/model/map/response/MapMenuDetailResponse.kt | 4 ++-- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 5a72f16..d7fd201 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -27,17 +27,6 @@ - - \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapMenuDetailResponse.kt b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapMenuDetailResponse.kt index 0760d7d..7c068d4 100644 --- a/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapMenuDetailResponse.kt +++ b/app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapMenuDetailResponse.kt @@ -6,11 +6,11 @@ import kotlinx.serialization.Serializable @Serializable data class MapMenuDetailResponse( @SerialName("menuId") - val menuId: Int, + val menuId: Long, @SerialName("menuTitle") val menuTitle: String, @SerialName("storeTitle") - val storeTitld: String, + val storeTitle: String, @SerialName("menuPrice") val menuPrice: Int, @SerialName("menuPinImgUrl")