Skip to content

Commit 6e194ae

Browse files
committed
[REFACTOR]: 메뉴 검색 기록 아이템 클릭시 해당 핀으로 focus 이동하도록 구현
1 parent e3d5229 commit 6e194ae

4 files changed

Lines changed: 21 additions & 8 deletions

File tree

app/src/main/java/com/kuit/ourmenu/data/model/map/response/MapSearchHistoryResponse.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable
66
@Serializable
77
data class MapSearchHistoryResponse(
88
@SerialName("menuId")
9-
val menuId: Int,
9+
val menuId: Long,
1010
@SerialName("menuTitle")
1111
val menuTitle: String,
1212
@SerialName("storeTitle")

app/src/main/java/com/kuit/ourmenu/ui/searchmenu/component/SearchHistory.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography
3333
fun SearchHistoryList(
3434
modifier: Modifier = Modifier,
3535
historyList: List<MapSearchHistoryResponse>?,
36-
onClick: () -> Unit = {},
36+
onClick: (Long) -> Unit = {},
3737
) {
3838
val lazyListState = rememberLazyListState()
3939

@@ -99,13 +99,13 @@ fun SearchHistoryList(
9999
fun SearchHistoryItem(
100100
modifier: Modifier = Modifier,
101101
historyData: MapSearchHistoryResponse,
102-
onClick: () -> Unit
102+
onClick: (Long) -> Unit
103103
) {
104104

105105
Column(
106106
modifier = modifier
107107
.fillMaxWidth()
108-
.clickable(onClick = onClick)
108+
.clickable(onClick = { onClick(historyData.menuId) })
109109
.padding(vertical = 20.dp, horizontal = 28.dp)
110110
) {
111111
Text(

app/src/main/java/com/kuit/ourmenu/ui/searchmenu/screen/SearchMenuScreen.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,10 @@ fun SearchMenuScreen(
181181
} else {
182182
SearchHistoryList(
183183
historyList = searchHistory,
184-
onClick = {
184+
onClick = { menuId ->
185185
// 크롤링 기록 아이템 클릭시 동작
186+
viewModel.getMapMenuDetail(menuId)
187+
Log.d("SearchMenuScreen", "검색 기록 아이템 클릭: $menuId")
186188
showSearchBackground = false
187189
showBottomSheet = true
188190
}

app/src/main/java/com/kuit/ourmenu/ui/searchmenu/viewmodel/SearchMenuViewModel.kt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,22 @@ class SearchMenuViewModel @Inject constructor(
313313
}
314314
}
315315

316-
fun getMapMenuDetail(menuId: Long){
316+
fun getMapMenuDetail(menuId: Long) {
317317
viewModelScope.launch {
318318
val response = mapRepository.getMapMenuDetail(menuId)
319-
response.onSuccess {
320-
Log.d("SearchMenuViewModel", "메뉴 상세 조회 성공: $it")
319+
response.onSuccess { menuDetail ->
320+
Log.d("SearchMenuViewModel", "메뉴 상세 조회 성공: $menuDetail")
321+
322+
// myMenus에서 해당 menuId를 가진 메뉴의 위치 정보 찾기
323+
myMenus.value?.find { it.mapId == menuId }?.let { menu ->
324+
// 해당 위치로 카메라 이동
325+
moveCamera(menu.mapY, menu.mapX)
326+
// 해당 핀을 활성화 상태로 변경
327+
_activeMapId.value = menuId
328+
refreshMarkers()
329+
// 메뉴 상세 정보를 바텀시트에 표시하기 위해 설정
330+
getMapDetail(menuId)
331+
}
321332
}.onFailure {
322333
Log.d("SearchMenuViewModel", "메뉴 상세 조회 실패: ${it.message}")
323334
}

0 commit comments

Comments
 (0)