Skip to content

Commit

Permalink
feat : SearchScreen의 최근 검색어 클릭 시 해당 검색어로 Api 통신 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
s6m1n committed Feb 19, 2024
1 parent f3c83d4 commit a3bb0db
Showing 1 changed file with 34 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ fun SearchScreen(
) {
SearchAppBar(navController, mapViewModel)
SearchDivider(6)
RecentSearchList(onDeleteAllDialogVisibleChanged)
RecentSearchList(onDeleteAllDialogVisibleChanged, navController)

if (isDeleteAllDialogVisible) {
DeleteAllDialog(onDeleteAllDialogVisibleChanged)
Expand Down Expand Up @@ -257,10 +257,11 @@ private fun BackArrow(navController: NavHostController, mapViewModel: MapViewMod
@Composable
fun RecentSearchList(
onDeleteAllDialogVisibleChanged: (Boolean) -> Unit,
viewModel: SearchViewModel = hiltViewModel()
navController: NavHostController,
searchViewModel: SearchViewModel = hiltViewModel()
) {
viewModel.getRecentSearchWord()
val recentSearchWords by viewModel.recentSearchWords.collectAsStateWithLifecycle()
searchViewModel.getRecentSearchWord()
val recentSearchWords by searchViewModel.recentSearchWords.collectAsStateWithLifecycle()


TitleText(recentSearchWords, onDeleteAllDialogVisibleChanged)
Expand All @@ -270,7 +271,7 @@ fun RecentSearchList(
} else {
LazyColumn {
itemsIndexed(recentSearchWords) { idx, item ->
RecentSearchItem(item)
RecentSearchItem(item, navController)
SearchDivider(1)
}
}
Expand Down Expand Up @@ -307,12 +308,37 @@ fun TitleText(exampleItems: List<SearchWord>, onDeleteAllDialogVisibleChanged: (
}

@Composable
fun RecentSearchItem(searchWord: SearchWord, viewModel: SearchViewModel = hiltViewModel()) {
fun RecentSearchItem(
searchWord: SearchWord,
navController: NavHostController,
mapViewModel: MapViewModel = hiltViewModel(),
searchViewModel: SearchViewModel = hiltViewModel(),
filterViewModel: FilterViewModel = hiltViewModel()
) {
val mapCenterCoordinate by mapViewModel.mapCenterCoordinate.collectAsStateWithLifecycle()
val mapScreenType by mapViewModel.mapScreenType.collectAsStateWithLifecycle()
Row(
modifier = Modifier
.fillMaxWidth()
.height(53.dp)
.padding(horizontal = DEFAULT_MARGIN.dp),
.padding(horizontal = DEFAULT_MARGIN.dp)
.clickable {
// TODO : 최근 검색어 클릭 시 검색 구현
filterViewModel.updateAllFilterUnClicked()
insertSearchWord(searchWord.keyword, searchViewModel)

filterViewModel.updateIsFilteredMarker(false)
mapViewModel.searchStore(
mapCenterCoordinate.longitude,
mapCenterCoordinate.latitude,
searchWord.keyword
)
navController.currentBackStackEntry?.savedStateHandle?.set(
key = SEARCH_KEY,
value = searchWord.keyword
)
mapViewModel.updateMapScreenType(MapScreenType.SEARCH)
},
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Expand Down Expand Up @@ -343,7 +369,7 @@ fun RecentSearchItem(searchWord: SearchWord, viewModel: SearchViewModel = hiltVi
modifier = Modifier
.size(16.dp)
.clickable {
viewModel.deleteSearchWordById(searchWord.id)
searchViewModel.deleteSearchWordById(searchWord.id)
}
)
}
Expand Down

0 comments on commit a3bb0db

Please sign in to comment.