From cf1f32c50366f8e614d50328da79950594dd81a0 Mon Sep 17 00:00:00 2001 From: leeseokchan00 <112953135+leeseokchan00@users.noreply.github.com> Date: Thu, 17 Jul 2025 03:28:05 +0900 Subject: [PATCH 1/8] refactor#90 place bottom sheet image size --- .../maps/component/bottomsheet/PlaceDetailBottomSheet.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/feature/maps/src/main/java/com/teamsolply/solply/maps/component/bottomsheet/PlaceDetailBottomSheet.kt b/feature/maps/src/main/java/com/teamsolply/solply/maps/component/bottomsheet/PlaceDetailBottomSheet.kt index 008c81d7..63ffeb6b 100644 --- a/feature/maps/src/main/java/com/teamsolply/solply/maps/component/bottomsheet/PlaceDetailBottomSheet.kt +++ b/feature/maps/src/main/java/com/teamsolply/solply/maps/component/bottomsheet/PlaceDetailBottomSheet.kt @@ -8,7 +8,9 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyVerticalGrid @@ -22,6 +24,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.AnnotatedString @@ -172,7 +175,10 @@ fun PlaceDetailBottomSheet( AdaptationImage( imageUrl = placeImageUrls[page].url, modifier = Modifier - .clip(RoundedCornerShape(20.dp)) + .height(218.dp) + .fillMaxWidth() + .clip(RoundedCornerShape(20.dp)), + contentScale = ContentScale.Crop, ) } Box( From 5ac73d23a6adc34e60099f39e8769661ba61dc71 Mon Sep 17 00:00:00 2001 From: leeseokchan00 <112953135+leeseokchan00@users.noreply.github.com> Date: Thu, 17 Jul 2025 04:37:11 +0900 Subject: [PATCH 2/8] feature#90 init place api --- .../dto/response/GetPlacesResponseDto.kt | 28 ++++++++ .../solply/place/mapper/PlaceEntityMapper.kt | 14 ++++ .../place/repository/PlaceRepositoryImpl.kt | 26 +++++++ .../place/source/PlaceRemoteDataSource.kt | 8 +++ .../solply/place/model/PlaceEntity.kt | 9 +++ .../place/repository/PlaceRepository.kt | 7 ++ .../teamsolply/solply/place/PlaceContract.kt | 71 ++----------------- .../teamsolply/solply/place/PlaceScreen.kt | 11 ++- .../teamsolply/solply/place/PlaceViewModel.kt | 23 ++++++ .../solply/place/model/PlaceData.kt | 2 +- .../datasource/PlaceRemoteDataSourceImpl.kt | 17 +++++ .../solply/place/service/PlaceService.kt | 10 +++ 12 files changed, 156 insertions(+), 70 deletions(-) create mode 100644 data/place/src/main/java/com/teamsolply/solply/place/dto/response/GetPlacesResponseDto.kt create mode 100644 data/place/src/main/java/com/teamsolply/solply/place/mapper/PlaceEntityMapper.kt create mode 100644 domain/place/src/main/java/com/teamsolply/solply/place/model/PlaceEntity.kt diff --git a/data/place/src/main/java/com/teamsolply/solply/place/dto/response/GetPlacesResponseDto.kt b/data/place/src/main/java/com/teamsolply/solply/place/dto/response/GetPlacesResponseDto.kt new file mode 100644 index 00000000..c1d51f36 --- /dev/null +++ b/data/place/src/main/java/com/teamsolply/solply/place/dto/response/GetPlacesResponseDto.kt @@ -0,0 +1,28 @@ +package com.teamsolply.solply.place.dto.response + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class GetPlacesResponseDto( + @SerialName("places") + val places: List +) + +@Serializable +data class PlaceDto( + @SerialName("placeId") + val placeId: Long, + + @SerialName("placeName") + val placeName: String, + + @SerialName("thumbnailImageUrl") + val thumbnailImageUrl: String, + + @SerialName("primaryTag") + val primaryTag: String, + + @SerialName("isBookmarked") + val isBookmarked: Boolean +) \ No newline at end of file diff --git a/data/place/src/main/java/com/teamsolply/solply/place/mapper/PlaceEntityMapper.kt b/data/place/src/main/java/com/teamsolply/solply/place/mapper/PlaceEntityMapper.kt new file mode 100644 index 00000000..d161e84d --- /dev/null +++ b/data/place/src/main/java/com/teamsolply/solply/place/mapper/PlaceEntityMapper.kt @@ -0,0 +1,14 @@ +package com.teamsolply.solply.place.mapper + +import com.teamsolply.solply.place.dto.response.PlaceDto +import com.teamsolply.solply.place.model.PlaceEntity + +fun PlaceDto.toEntity(): PlaceEntity { + return PlaceEntity( + placeId = this.placeId, + placeName = this.placeName, + thumbnailImageUrl = this.thumbnailImageUrl, + primaryTag = this.primaryTag, + isBookmarked = this.isBookmarked + ) +} \ No newline at end of file diff --git a/data/place/src/main/java/com/teamsolply/solply/place/repository/PlaceRepositoryImpl.kt b/data/place/src/main/java/com/teamsolply/solply/place/repository/PlaceRepositoryImpl.kt index 5cbfd1d9..58c2cd0e 100644 --- a/data/place/src/main/java/com/teamsolply/solply/place/repository/PlaceRepositoryImpl.kt +++ b/data/place/src/main/java/com/teamsolply/solply/place/repository/PlaceRepositoryImpl.kt @@ -2,6 +2,7 @@ package com.teamsolply.solply.place.repository import android.util.Log import com.teamsolply.solply.model.PlaceType +import com.teamsolply.solply.place.model.PlaceEntity import com.teamsolply.solply.place.model.RecommendPlaceInfo import com.teamsolply.solply.place.model.SaveAutoSignInEntity import com.teamsolply.solply.place.model.SelectedTownInfo @@ -90,4 +91,29 @@ class PlaceRepositoryImpl @Inject constructor( ) } } + + override suspend fun getPlaces( + townId: Long, + mainTagId: Long?, + subTagAIdList: List?, + subTagBIdList: List? + ): Result> = runCatching { + placeRemoteDataSource.getPlaces( + townId = townId, + isBookmarkSearch = false, + mainTagId = mainTagId, + subTagAIdList = subTagAIdList, + subTagBIdList = subTagBIdList + ) + }.mapCatching { responseDto -> + responseDto.places.map { dto -> + PlaceEntity( + placeId = dto.placeId, + placeName = dto.placeName, + thumbnailImageUrl = dto.thumbnailImageUrl, + primaryTag = dto.primaryTag, + isBookmarked = dto.isBookmarked + ) + } + } } diff --git a/data/place/src/main/java/com/teamsolply/solply/place/source/PlaceRemoteDataSource.kt b/data/place/src/main/java/com/teamsolply/solply/place/source/PlaceRemoteDataSource.kt index a039d229..a3d57981 100644 --- a/data/place/src/main/java/com/teamsolply/solply/place/source/PlaceRemoteDataSource.kt +++ b/data/place/src/main/java/com/teamsolply/solply/place/source/PlaceRemoteDataSource.kt @@ -1,5 +1,6 @@ package com.teamsolply.solply.place.source +import com.teamsolply.solply.place.dto.response.GetPlacesResponseDto import com.teamsolply.solply.place.dto.response.GetRecommendPlaceDto import com.teamsolply.solply.place.dto.response.GetTagResponseDto import com.teamsolply.solply.place.dto.response.GetUserInfoResponseDto @@ -8,4 +9,11 @@ interface PlaceRemoteDataSource { suspend fun getTags(parentId: Int?): List suspend fun getUserInfo(): GetUserInfoResponseDto suspend fun getRecommendPlace(townId: Long): List + suspend fun getPlaces( + townId: Long, + isBookmarkSearch: Boolean, + mainTagId: Long?, + subTagAIdList: List?, + subTagBIdList: List? + ): GetPlacesResponseDto } diff --git a/domain/place/src/main/java/com/teamsolply/solply/place/model/PlaceEntity.kt b/domain/place/src/main/java/com/teamsolply/solply/place/model/PlaceEntity.kt new file mode 100644 index 00000000..02d85c74 --- /dev/null +++ b/domain/place/src/main/java/com/teamsolply/solply/place/model/PlaceEntity.kt @@ -0,0 +1,9 @@ +package com.teamsolply.solply.place.model + +data class PlaceEntity( + val placeId: Long, + val placeName: String, + val thumbnailImageUrl: String, + val primaryTag: String, + val isBookmarked: Boolean +) \ No newline at end of file diff --git a/domain/place/src/main/java/com/teamsolply/solply/place/repository/PlaceRepository.kt b/domain/place/src/main/java/com/teamsolply/solply/place/repository/PlaceRepository.kt index c4743105..193bb88c 100644 --- a/domain/place/src/main/java/com/teamsolply/solply/place/repository/PlaceRepository.kt +++ b/domain/place/src/main/java/com/teamsolply/solply/place/repository/PlaceRepository.kt @@ -1,5 +1,6 @@ package com.teamsolply.solply.place.repository +import com.teamsolply.solply.place.model.PlaceEntity import com.teamsolply.solply.place.model.RecommendPlaceInfo import com.teamsolply.solply.place.model.SaveAutoSignInEntity import com.teamsolply.solply.place.model.TagEntity @@ -11,4 +12,10 @@ interface PlaceRepository { suspend fun getMainTags(): Result> suspend fun getSubTags(parentId: Int): Result> suspend fun getUserInfo(): Result + suspend fun getPlaces( + townId: Long, + mainTagId: Long?, + subTagAIdList: List?, + subTagBIdList: List? + ): Result> } diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt index 45fe8d90..49e80515 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt @@ -46,75 +46,12 @@ data class PlaceState( introduction = "장소 한 줄 소개 장소 한 줄 소개 두 줄이 되어도 괜찮음음음음음음" ) ), - val placeList: List = immutableListOf( - PlaceData( - placeId = 1, - placeName = "바보", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.FOOD, - isBookmarked = true - ), - PlaceData( - placeId = 2, - placeName = "연남동", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.CAFE, - isBookmarked = false - ), - PlaceData( - placeId = 3, - placeName = "홍대어딘가", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.UNIQUE_SPACE, - isBookmarked = true - ), - PlaceData( - placeId = 4, - placeName = "하현상최고", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.WALKING, - isBookmarked = false - ), - PlaceData( - placeId = 5, - placeName = "크크르상회", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.CAFE, - isBookmarked = true - ), - PlaceData( - placeId = 6, - placeName = "메롱2", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.CAFE, - isBookmarked = true - ), - PlaceData( - placeId = 7, - placeName = "메롱3", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.CAFE, - isBookmarked = true - ), - PlaceData( - placeId = 8, - placeName = "불꽃놀이", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.SHOPPING, - isBookmarked = false - ), - PlaceData( - placeId = 9, - placeName = "연희동달팽이", - thumbnailUrl = com.teamsolply.solply.designsystem.R.drawable.img_course_dummy, - primaryTag = PlaceType.BOOKSTORE, - isBookmarked = false - ) - ), + val placeList: PersistentList = persistentListOf(), + val selectedMainTagId: Int = 0, - val mainFilterItems: List = listOf(), - val subFilterItems: List? = listOf(), + val mainFilterItems: PersistentList = persistentListOf(), + val subFilterItems: PersistentList? = persistentListOf(), val isMainFilterBottomSheetVisible: Boolean = false, val selectedMainFilter: String = "ALL", diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt index c24470c0..7d1694f2 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt @@ -103,10 +103,17 @@ fun PlaceRoute( dragHandle = null ) { PlaceTypeFilterSheet( - filterItems = state.mainFilterItems.map { it.toPlaceType().toPlaceTypeFilterItem() }, + filterItems = state.mainFilterItems.map { + it.toPlaceType().toPlaceTypeFilterItem() + }, selectedType = state.selectedMainFilter, onSelectType = { mainFilterId, mainFilterName -> - viewModel.sendIntent(PlaceIntent.ChangeSelectedMainFilter(mainFilterId, mainFilterName)) + viewModel.sendIntent( + PlaceIntent.ChangeSelectedMainFilter( + mainFilterId, + mainFilterName + ) + ) viewModel.sendIntent(PlaceIntent.ChangeMainFilterBottomSheetVisible) }, onDismiss = { diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt index a539edae..6348c854 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt @@ -1,6 +1,8 @@ package com.teamsolply.solply.place import androidx.lifecycle.viewModelScope +import com.teamsolply.solply.model.PlaceType +import com.teamsolply.solply.place.model.PlaceData import com.teamsolply.solply.place.model.SaveAutoSignInEntity import com.teamsolply.solply.place.repository.PlaceRepository import com.teamsolply.solply.ui.base.BaseViewModel @@ -133,6 +135,27 @@ class PlaceViewModel @Inject constructor( repository.getUserInfo() .onSuccess { userInfo -> reduce { copy(userInfo = userInfo) } + + repository.getPlaces( + townId = userInfo.selectedTown.townId, + mainTagId = null, + subTagAIdList = emptyList(), + subTagBIdList = emptyList() + ).onSuccess { + reduce { + copy( + placeList = it.map { + PlaceData( + placeId = it.placeId, + placeName = it.placeName, + thumbnailUrl = it.thumbnailImageUrl, + primaryTag = PlaceType.valueOf(it.primaryTag), + isBookmarked = it.isBookmarked + ) + } + ) + } + } } } } diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/model/PlaceData.kt b/feature/place/src/main/java/com/teamsolply/solply/place/model/PlaceData.kt index 9d4389e3..0e4443d3 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/model/PlaceData.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/model/PlaceData.kt @@ -5,7 +5,7 @@ import com.teamsolply.solply.model.PlaceType data class PlaceData( val placeId: Long, val placeName: String, - val thumbnailUrl: Int, + val thumbnailUrl: String, val primaryTag: PlaceType, val isBookmarked: Boolean ) diff --git a/remote/place/src/main/java/com/teamsolply/solply/place/datasource/PlaceRemoteDataSourceImpl.kt b/remote/place/src/main/java/com/teamsolply/solply/place/datasource/PlaceRemoteDataSourceImpl.kt index 70d14558..17be1dd6 100644 --- a/remote/place/src/main/java/com/teamsolply/solply/place/datasource/PlaceRemoteDataSourceImpl.kt +++ b/remote/place/src/main/java/com/teamsolply/solply/place/datasource/PlaceRemoteDataSourceImpl.kt @@ -1,5 +1,6 @@ package com.teamsolply.solply.place.datasource +import com.teamsolply.solply.place.dto.response.GetPlacesResponseDto import com.teamsolply.solply.place.dto.response.GetRecommendPlaceDto import com.teamsolply.solply.place.dto.response.GetTagResponseDto import com.teamsolply.solply.place.dto.response.GetUserInfoResponseDto @@ -21,4 +22,20 @@ class PlaceRemoteDataSourceImpl @Inject constructor( override suspend fun getRecommendPlace(townId: Long): List { return placeService.getRecommendPlace(townId).data.placeInfos } + + override suspend fun getPlaces( + townId: Long, + isBookmarkSearch: Boolean, + mainTagId: Long?, + subTagAIdList: List?, + subTagBIdList: List? + ): GetPlacesResponseDto { + return placeService.getPlaces( + townId = townId, + isBookmarkSearch = isBookmarkSearch, + mainTagId = mainTagId, + subTagAIdList = subTagAIdList, + subTagBIdList = subTagBIdList + ).data + } } diff --git a/remote/place/src/main/java/com/teamsolply/solply/place/service/PlaceService.kt b/remote/place/src/main/java/com/teamsolply/solply/place/service/PlaceService.kt index 76e3fa61..811b6035 100644 --- a/remote/place/src/main/java/com/teamsolply/solply/place/service/PlaceService.kt +++ b/remote/place/src/main/java/com/teamsolply/solply/place/service/PlaceService.kt @@ -1,6 +1,7 @@ package com.teamsolply.solply.place.service import com.teamsolply.solply.network.model.BaseResponse +import com.teamsolply.solply.place.dto.response.GetPlacesResponseDto import com.teamsolply.solply.place.dto.response.GetRecommendPlaceListDto import com.teamsolply.solply.place.dto.response.GetTagListResponseDto import com.teamsolply.solply.place.dto.response.GetUserInfoResponseDto @@ -22,4 +23,13 @@ interface PlaceService { @Query("townId") townId: Long ): BaseResponse + + @GET("/api/places") + suspend fun getPlaces( + @Query("townId") townId: Long, + @Query("isBookmarkSearch") isBookmarkSearch: Boolean, + @Query("mainTagId") mainTagId: Long?, + @Query("subTagAIdList") subTagAIdList: List?, + @Query("subTagBIdList") subTagBIdList: List? + ): BaseResponse } From 3aa6027223b4c9cf0d88f7e3dce8aaa1d8f99eaf Mon Sep 17 00:00:00 2001 From: leeseokchan00 <112953135+leeseokchan00@users.noreply.github.com> Date: Thu, 17 Jul 2025 05:07:33 +0900 Subject: [PATCH 3/8] refactor#90 place to persistent list --- .../teamsolply/solply/place/PlaceContract.kt | 27 ++----------------- .../teamsolply/solply/place/PlaceViewModel.kt | 8 +++--- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt index 49e80515..3b66fe9e 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt @@ -1,6 +1,5 @@ package com.teamsolply.solply.place -import com.teamsolply.solply.model.PlaceType import com.teamsolply.solply.place.model.PlaceData import com.teamsolply.solply.place.model.RecommendPlaceInfo import com.teamsolply.solply.place.model.SelectedTownInfo @@ -11,7 +10,6 @@ import com.teamsolply.solply.ui.base.UiIntent import com.teamsolply.solply.ui.base.UiState import kotlinx.collections.immutable.PersistentList import kotlinx.collections.immutable.persistentListOf -import okhttp3.internal.immutableListOf data class PlaceState( val townId: Long = 0, @@ -23,29 +21,8 @@ data class PlaceState( persona = "REST" ), - val recommendPlaces: List = immutableListOf( - RecommendPlaceInfo( - placeId = 0, - placeName = "장소 이름", - thumbnailImageUrl = "", - primaryTag = PlaceType.CAFE, - introduction = "장소 한 줄 소개 장소 한 줄 소개" - ), - RecommendPlaceInfo( - placeId = 1, - placeName = "장소 이름", - thumbnailImageUrl = "", - primaryTag = PlaceType.FOOD, - introduction = "장소 한 줄 소개 장소 한 줄 소개" - ), - RecommendPlaceInfo( - placeId = 2, - placeName = "장소 이름", - thumbnailImageUrl = "", - primaryTag = PlaceType.UNIQUE_SPACE, - introduction = "장소 한 줄 소개 장소 한 줄 소개 두 줄이 되어도 괜찮음음음음음음" - ) - ), + val recommendPlaces: PersistentList = persistentListOf(), + val placeList: PersistentList = persistentListOf(), val selectedMainTagId: Int = 0, diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt index 6348c854..6e41627d 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt @@ -97,7 +97,7 @@ class PlaceViewModel @Inject constructor( viewModelScope.launch { repository.getRecommendedPlace(townId) .onSuccess { placesList -> - reduce { copy(recommendPlaces = placesList) } + reduce { copy(recommendPlaces = placesList.toPersistentList()) } } } } @@ -109,7 +109,7 @@ class PlaceViewModel @Inject constructor( reduce { copy( selectedMainTagId = tagList[0].tagId, - mainFilterItems = tagList + mainFilterItems = tagList.toPersistentList() ) } // TODO 전체 선택할 때 404 예외 처리 @@ -123,7 +123,7 @@ class PlaceViewModel @Inject constructor( .onSuccess { tagList -> reduce { copy( - subFilterItems = tagList + subFilterItems = tagList.toPersistentList() ) } } @@ -152,7 +152,7 @@ class PlaceViewModel @Inject constructor( primaryTag = PlaceType.valueOf(it.primaryTag), isBookmarked = it.isBookmarked ) - } + }.toPersistentList() ) } } From 018195a562efce41f5afaa1fe07f5b651c47b34f Mon Sep 17 00:00:00 2001 From: leeseokchan00 <112953135+leeseokchan00@users.noreply.github.com> Date: Thu, 17 Jul 2025 05:26:14 +0900 Subject: [PATCH 4/8] refactor#90 place image coil --- .../component/card/SolplyPlaceCard.kt | 8 ++- .../teamsolply/solply/place/PlaceScreen.kt | 2 +- .../teamsolply/solply/place/PlaceViewModel.kt | 50 ++++++++++++------- 3 files changed, 41 insertions(+), 19 deletions(-) diff --git a/core/designsystem/src/main/java/com/teamsolply/solply/designsystem/component/card/SolplyPlaceCard.kt b/core/designsystem/src/main/java/com/teamsolply/solply/designsystem/component/card/SolplyPlaceCard.kt index e4f49a59..68798328 100644 --- a/core/designsystem/src/main/java/com/teamsolply/solply/designsystem/component/card/SolplyPlaceCard.kt +++ b/core/designsystem/src/main/java/com/teamsolply/solply/designsystem/component/card/SolplyPlaceCard.kt @@ -18,6 +18,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.unit.dp import com.teamsolply.solply.designsystem.component.button.SolplySavedMarker import com.teamsolply.solply.designsystem.component.chip.CheckedBigCircle @@ -76,7 +77,12 @@ fun SolplyPlaceCard( ) { AdaptationImage( imageUrl = imgRes, - modifier = Modifier.matchParentSize() + modifier = Modifier + .size(136.dp) + .fillMaxWidth() + .clip(RoundedCornerShape(20.dp)) + .matchParentSize(), + contentScale = ContentScale.Crop, ) if (saved) { SolplySavedMarker( diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt index 7d1694f2..6ea9ee76 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt @@ -321,7 +321,7 @@ fun PlaceGridItem( ) { SolplyPlaceCard( name = place.placeName, - imgRes = "", + imgRes = place.thumbnailUrl, placeType = place.primaryTag, modifier = modifier, onClick = onClick, diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt index 6e41627d..7d14243d 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt @@ -136,27 +136,43 @@ class PlaceViewModel @Inject constructor( .onSuccess { userInfo -> reduce { copy(userInfo = userInfo) } - repository.getPlaces( + loadPlaces( townId = userInfo.selectedTown.townId, mainTagId = null, - subTagAIdList = emptyList(), - subTagBIdList = emptyList() - ).onSuccess { - reduce { - copy( - placeList = it.map { - PlaceData( - placeId = it.placeId, - placeName = it.placeName, - thumbnailUrl = it.thumbnailImageUrl, - primaryTag = PlaceType.valueOf(it.primaryTag), - isBookmarked = it.isBookmarked - ) - }.toPersistentList() + subTagAIdList = null, + subTagBIdList = null + ) + } + } + } + + private fun loadPlaces( + townId: Long, + mainTagId: Long? = null, + subTagAIdList: List? = null, + subTagBIdList: List? = null + ) { + viewModelScope.launch { + repository.getPlaces( + townId = townId, + mainTagId = mainTagId, + subTagAIdList = subTagAIdList, + subTagBIdList = subTagBIdList, + ).onSuccess { placeEntities -> + reduce { + copy( + placeList = placeEntities.map { + PlaceData( + placeId = it.placeId, + placeName = it.placeName, + thumbnailUrl = it.thumbnailImageUrl, + primaryTag = PlaceType.valueOf(it.primaryTag), + isBookmarked = it.isBookmarked ) - } - } + }.toPersistentList() + ) } + } } } } From 43e34e6426223b806779c418ab2d104c4d9f5cd8 Mon Sep 17 00:00:00 2001 From: leeseokchan00 <112953135+leeseokchan00@users.noreply.github.com> Date: Thu, 17 Jul 2025 05:56:38 +0900 Subject: [PATCH 5/8] refactor#90 delete unused code --- .../teamsolply/solply/place/PlaceContract.kt | 1 - .../teamsolply/solply/place/PlaceViewModel.kt | 22 ++++++------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt index 3b66fe9e..b7b34fb5 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceContract.kt @@ -43,7 +43,6 @@ sealed interface PlaceIntent : UiIntent { data class LoadPlaces(val townId: Long) : PlaceIntent data class PlaceClicked(val placeId: Long) : PlaceIntent data object Retry : PlaceIntent - data class SelectOptionFilter(val optionTagId: Int) : PlaceIntent data object ClearOptionFilter : PlaceIntent data object ChangeMainFilterBottomSheetVisible : PlaceIntent diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt index 7d14243d..5cbe64ce 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt @@ -44,21 +44,6 @@ class PlaceViewModel @Inject constructor( is PlaceIntent.PlaceClicked -> postSideEffect(PlaceSideEffect.NavigateToMap(intent.placeId)) PlaceIntent.Retry -> {} - is PlaceIntent.SelectOptionFilter -> { - val currentOptionFilter = intent.optionTagId - val updatedOptionFilter = - if (uiState.value.selectedOptionFilter.contains(currentOptionFilter)) { - uiState.value.selectedOptionFilter - currentOptionFilter - } else { - uiState.value.selectedOptionFilter + currentOptionFilter - } - reduce { - copy( - selectedOptionFilter = updatedOptionFilter.toPersistentList() - ) - } - } - // 메인 필터 바텀시트 visible PlaceIntent.ChangeMainFilterBottomSheetVisible -> reduce { copy(isMainFilterBottomSheetVisible = !isMainFilterBottomSheetVisible) @@ -90,6 +75,13 @@ class PlaceViewModel @Inject constructor( PlaceIntent.ClearOptionFilter -> reduce { copy(selectedOptionFilter = persistentListOf()) } + + PlaceIntent.RequestPlaces -> { + loadPlaces( + townId = uiState.value.userInfo.selectedTown.townId, + mainTagId = uiState.value.selectedMainTagId.toLong() + ) + } } } From 0a297005660d172b9ab70ae99c3cc198a6c8f136 Mon Sep 17 00:00:00 2001 From: leeseokchan00 <112953135+leeseokchan00@users.noreply.github.com> Date: Thu, 17 Jul 2025 06:16:53 +0900 Subject: [PATCH 6/8] refactor# maps navigation param --- .../teamsolply/solply/main/MainNavigator.kt | 6 ++- .../com/teamsolply/solply/main/MainScreen.kt | 41 ++++++++++++++++--- .../com/teamsolply/solply/maps/MapsScreen.kt | 10 +++-- .../solply/maps/navigation/MapsNavigation.kt | 13 +++++- .../teamsolply/solply/place/PlaceScreen.kt | 7 ++-- .../teamsolply/solply/place/PlaceViewModel.kt | 7 ---- .../place/navigation/PlaceNavigation.kt | 2 +- 7 files changed, 62 insertions(+), 24 deletions(-) diff --git a/feature/main/src/main/java/com/teamsolply/solply/main/MainNavigator.kt b/feature/main/src/main/java/com/teamsolply/solply/main/MainNavigator.kt index 8ea3583b..4ffcd1a3 100644 --- a/feature/main/src/main/java/com/teamsolply/solply/main/MainNavigator.kt +++ b/feature/main/src/main/java/com/teamsolply/solply/main/MainNavigator.kt @@ -90,11 +90,15 @@ internal class MainNavigator( fun navigateToMaps( mapsType: String, + townId: Long, + placeId: Long? = null, navOptions: NavOptions ) { navController.navigateMaps( mapsType = mapsType, - navOptions = navOptions + townId = townId, + placeId = placeId, + navOptions = navOptions, ) } diff --git a/feature/main/src/main/java/com/teamsolply/solply/main/MainScreen.kt b/feature/main/src/main/java/com/teamsolply/solply/main/MainScreen.kt index 359330cc..1b35f9c6 100644 --- a/feature/main/src/main/java/com/teamsolply/solply/main/MainScreen.kt +++ b/feature/main/src/main/java/com/teamsolply/solply/main/MainScreen.kt @@ -156,23 +156,38 @@ internal fun MainScreen( ) placeNavGraph( paddingValues = innerPadding, - navigateToMaps = { mapsType -> + navigateToMaps = { mapsType, townId, placeId -> val navOptions = navOptions {} - navigator.navigateToMaps(mapsType = mapsType, navOptions = navOptions) + navigator.navigateToMaps( + mapsType = mapsType, + townId = townId, + placeId = placeId, + navOptions = navOptions + ) } ) courseNavGraph( paddingValues = innerPadding, navigateToMaps = { mapsType -> val navOptions = navOptions {} - navigator.navigateToMaps(mapsType = mapsType, navOptions = navOptions) + //TODO. 타운 아이디 + navigator.navigateToMaps( + mapsType = mapsType, + townId = 0, + navOptions = navOptions + ) } ) mypageNavGraph( paddingValues = innerPadding, navigateToMaps = { mapsType -> val navOptions = navOptions {} - navigator.navigateToMaps(mapsType = mapsType, navOptions = navOptions) + //TODO. 타운 아이디 + navigator.navigateToMaps( + mapsType = mapsType, + townId = 0, + navOptions = navOptions + ) }, navigateToBack = navigator::navigateToBack, navigateToPlaceCollection = { townId, townName -> @@ -223,15 +238,19 @@ internal fun MainScreen( }, navigateToPlaceDetail = { val navOptions = navOptions {} + //TODO. 타운 아이디 navigator.navigateToMaps( mapsType = MapsType.PLACE_DETAIL.name, + townId = 0, navOptions = navOptions ) }, navigateToEditCourse = { val navOptions = navOptions {} + //TODO. 타운 아이디 navigator.navigateToMaps( mapsType = MapsType.EDIT_COURSE.name, + townId = 0, navOptions = navOptions ) }, @@ -265,7 +284,12 @@ internal fun MainScreen( paddingValues = innerPadding, navigateToMaps = { mapsType -> val navOptions = navOptions {} - navigator.navigateToMaps(mapsType = mapsType, navOptions = navOptions) + //TODO. 타운 아이디 + navigator.navigateToMaps( + mapsType = mapsType, + townId = 0, + navOptions = navOptions + ) }, navigateToBack = navigator::navigateToBack ) @@ -273,7 +297,12 @@ internal fun MainScreen( paddingValues = innerPadding, navigateToMaps = { mapsType -> val navOptions = navOptions { } - navigator.navigateToMaps(mapsType = mapsType, navOptions = navOptions) + //TODO. 타운 아이디 + navigator.navigateToMaps( + mapsType = mapsType, + townId = 0, + navOptions = navOptions + ) }, navigateToBack = navigator::navigateToBack ) diff --git a/feature/maps/src/main/java/com/teamsolply/solply/maps/MapsScreen.kt b/feature/maps/src/main/java/com/teamsolply/solply/maps/MapsScreen.kt index 89004c70..31732e1c 100644 --- a/feature/maps/src/main/java/com/teamsolply/solply/maps/MapsScreen.kt +++ b/feature/maps/src/main/java/com/teamsolply/solply/maps/MapsScreen.kt @@ -81,8 +81,8 @@ import kotlin.math.abs @Composable internal fun MapsRoute( mapsType: MapsType, - townId: Long = 0, - targetId: Long = 1, + townId: Long, + placeId: Long?, showTextSnackBar: (String) -> Unit, showNotificationSnackBar: (String) -> Unit, showNavigateSnackBar: (String, () -> Unit) -> Unit, @@ -102,8 +102,10 @@ internal fun MapsRoute( LaunchedEffect(Unit) { when (mapsType) { MapsType.PLACE_DETAIL -> { - viewModel.getPlaceDetailInfo(targetId) - viewModel.getAllCourseInfo(townId = townId, placeId = targetId) + if (placeId != null) { + viewModel.getPlaceDetailInfo(placeId) + viewModel.getAllCourseInfo(townId = townId, placeId = placeId) + } } MapsType.ADD_COURSE -> { diff --git a/feature/maps/src/main/java/com/teamsolply/solply/maps/navigation/MapsNavigation.kt b/feature/maps/src/main/java/com/teamsolply/solply/maps/navigation/MapsNavigation.kt index 303399bc..4014553e 100644 --- a/feature/maps/src/main/java/com/teamsolply/solply/maps/navigation/MapsNavigation.kt +++ b/feature/maps/src/main/java/com/teamsolply/solply/maps/navigation/MapsNavigation.kt @@ -13,9 +13,11 @@ import kotlinx.serialization.Serializable fun NavController.navigateMaps( mapsType: String, + townId: Long, + placeId: Long?, navOptions: NavOptions ) { - navigate(Maps(mapsType = mapsType), navOptions) + navigate(Maps(mapsType = mapsType, townId = townId, placeId = placeId), navOptions) } fun NavGraphBuilder.mapsNavGraph( @@ -32,8 +34,13 @@ fun NavGraphBuilder.mapsNavGraph( ) { composable { backStackEntry -> val mapsType = MapsType.valueOf(backStackEntry.toRoute().mapsType) + val townId = backStackEntry.toRoute().townId + val placeId = backStackEntry.toRoute().placeId + MapsRoute( mapsType = mapsType, + townId = townId, + placeId = placeId, showTextSnackBar = showTextSnackBar, showNotificationSnackBar = showNotificationSnackBar, showNavigateSnackBar = showNavigateSnackBar, @@ -50,5 +57,7 @@ fun NavGraphBuilder.mapsNavGraph( @Serializable data class Maps( - val mapsType: String + val mapsType: String, + val townId: Long, + val placeId: Long? ) : Route diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt index 6ea9ee76..baac7a67 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt @@ -64,7 +64,7 @@ import toPlaceTypeFilterItem @Composable fun PlaceRoute( paddingValues: PaddingValues, - navigateToMaps: (String) -> Unit, + navigateToMaps: (String, Long, Long) -> Unit, viewModel: PlaceViewModel = hiltViewModel() ) { val state by viewModel.uiState.collectAsState() @@ -75,8 +75,9 @@ fun PlaceRoute( viewModel.sideEffect.collectLatest { sideEffect -> when (sideEffect) { is PlaceSideEffect.NavigateToMap -> { - // TODO. maps로 placeId 전달 sideEffect.placeId - navigateToMaps(MapsType.PLACE_DETAIL.name) + navigateToMaps( + MapsType.PLACE_DETAIL.name, state.townId, sideEffect.placeId + ) } } } diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt index 5cbe64ce..b9e1cad1 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt @@ -75,13 +75,6 @@ class PlaceViewModel @Inject constructor( PlaceIntent.ClearOptionFilter -> reduce { copy(selectedOptionFilter = persistentListOf()) } - - PlaceIntent.RequestPlaces -> { - loadPlaces( - townId = uiState.value.userInfo.selectedTown.townId, - mainTagId = uiState.value.selectedMainTagId.toLong() - ) - } } } diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/navigation/PlaceNavigation.kt b/feature/place/src/main/java/com/teamsolply/solply/place/navigation/PlaceNavigation.kt index 092cc3d8..f982a52a 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/navigation/PlaceNavigation.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/navigation/PlaceNavigation.kt @@ -15,7 +15,7 @@ fun NavController.navigatePlace(navOptions: NavOptions) { fun NavGraphBuilder.placeNavGraph( paddingValues: PaddingValues, - navigateToMaps: (String) -> Unit + navigateToMaps: (String, Long, Long) -> Unit ) { composable { PlaceRoute( From 85bf910ffb48e44f7f70ac293da7ab6db871cb6f Mon Sep 17 00:00:00 2001 From: leeseokchan00 <112953135+leeseokchan00@users.noreply.github.com> Date: Thu, 17 Jul 2025 07:29:54 +0900 Subject: [PATCH 7/8] refactor#90 bottom bar animation --- .../solply/main/component/MainBottomBar.kt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/feature/main/src/main/java/com/teamsolply/solply/main/component/MainBottomBar.kt b/feature/main/src/main/java/com/teamsolply/solply/main/component/MainBottomBar.kt index fc82d7d5..4fedca0b 100644 --- a/feature/main/src/main/java/com/teamsolply/solply/main/component/MainBottomBar.kt +++ b/feature/main/src/main/java/com/teamsolply/solply/main/component/MainBottomBar.kt @@ -1,6 +1,14 @@ package com.teamsolply.solply.main.component import androidx.compose.animation.AnimatedVisibility +import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.slideInHorizontally +import androidx.compose.animation.slideInVertically +import androidx.compose.animation.slideOut +import androidx.compose.animation.slideOutHorizontally +import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -34,7 +42,16 @@ internal fun MainBottomBar( currentTab: MainNavTab?, onTabSelected: (MainNavTab) -> Unit ) { - AnimatedVisibility(visible = visible) { + AnimatedVisibility( + visible = visible, + enter = slideInHorizontally( + animationSpec = tween(250), + initialOffsetX = { it } + ), + exit = slideOutHorizontally( + animationSpec = tween(250), + targetOffsetX = { it } + )) { Box(modifier = modifier.fillMaxWidth()) { Row( modifier = Modifier From eddb57f0cbaaf93a706b9b85aa68148add79a9fc Mon Sep 17 00:00:00 2001 From: leeseokchan00 <112953135+leeseokchan00@users.noreply.github.com> Date: Thu, 17 Jul 2025 07:30:55 +0900 Subject: [PATCH 8/8] chore#90 ktlint format --- .../designsystem/component/card/SolplyPlaceCard.kt | 2 +- .../place/dto/response/GetPlacesResponseDto.kt | 2 +- .../solply/place/mapper/PlaceEntityMapper.kt | 2 +- .../com/teamsolply/solply/place/model/PlaceEntity.kt | 2 +- .../java/com/teamsolply/solply/main/MainNavigator.kt | 2 +- .../java/com/teamsolply/solply/main/MainScreen.kt | 12 ++++++------ .../solply/main/component/MainBottomBar.kt | 8 ++------ .../component/bottomsheet/PlaceDetailBottomSheet.kt | 2 +- .../java/com/teamsolply/solply/place/PlaceScreen.kt | 4 +++- .../com/teamsolply/solply/place/PlaceViewModel.kt | 2 +- 10 files changed, 18 insertions(+), 20 deletions(-) diff --git a/core/designsystem/src/main/java/com/teamsolply/solply/designsystem/component/card/SolplyPlaceCard.kt b/core/designsystem/src/main/java/com/teamsolply/solply/designsystem/component/card/SolplyPlaceCard.kt index 68798328..b43c7138 100644 --- a/core/designsystem/src/main/java/com/teamsolply/solply/designsystem/component/card/SolplyPlaceCard.kt +++ b/core/designsystem/src/main/java/com/teamsolply/solply/designsystem/component/card/SolplyPlaceCard.kt @@ -82,7 +82,7 @@ fun SolplyPlaceCard( .fillMaxWidth() .clip(RoundedCornerShape(20.dp)) .matchParentSize(), - contentScale = ContentScale.Crop, + contentScale = ContentScale.Crop ) if (saved) { SolplySavedMarker( diff --git a/data/place/src/main/java/com/teamsolply/solply/place/dto/response/GetPlacesResponseDto.kt b/data/place/src/main/java/com/teamsolply/solply/place/dto/response/GetPlacesResponseDto.kt index c1d51f36..88acdea3 100644 --- a/data/place/src/main/java/com/teamsolply/solply/place/dto/response/GetPlacesResponseDto.kt +++ b/data/place/src/main/java/com/teamsolply/solply/place/dto/response/GetPlacesResponseDto.kt @@ -25,4 +25,4 @@ data class PlaceDto( @SerialName("isBookmarked") val isBookmarked: Boolean -) \ No newline at end of file +) diff --git a/data/place/src/main/java/com/teamsolply/solply/place/mapper/PlaceEntityMapper.kt b/data/place/src/main/java/com/teamsolply/solply/place/mapper/PlaceEntityMapper.kt index d161e84d..9732d9ff 100644 --- a/data/place/src/main/java/com/teamsolply/solply/place/mapper/PlaceEntityMapper.kt +++ b/data/place/src/main/java/com/teamsolply/solply/place/mapper/PlaceEntityMapper.kt @@ -11,4 +11,4 @@ fun PlaceDto.toEntity(): PlaceEntity { primaryTag = this.primaryTag, isBookmarked = this.isBookmarked ) -} \ No newline at end of file +} diff --git a/domain/place/src/main/java/com/teamsolply/solply/place/model/PlaceEntity.kt b/domain/place/src/main/java/com/teamsolply/solply/place/model/PlaceEntity.kt index 02d85c74..3fd50b90 100644 --- a/domain/place/src/main/java/com/teamsolply/solply/place/model/PlaceEntity.kt +++ b/domain/place/src/main/java/com/teamsolply/solply/place/model/PlaceEntity.kt @@ -6,4 +6,4 @@ data class PlaceEntity( val thumbnailImageUrl: String, val primaryTag: String, val isBookmarked: Boolean -) \ No newline at end of file +) diff --git a/feature/main/src/main/java/com/teamsolply/solply/main/MainNavigator.kt b/feature/main/src/main/java/com/teamsolply/solply/main/MainNavigator.kt index 4ffcd1a3..293ea66a 100644 --- a/feature/main/src/main/java/com/teamsolply/solply/main/MainNavigator.kt +++ b/feature/main/src/main/java/com/teamsolply/solply/main/MainNavigator.kt @@ -98,7 +98,7 @@ internal class MainNavigator( mapsType = mapsType, townId = townId, placeId = placeId, - navOptions = navOptions, + navOptions = navOptions ) } diff --git a/feature/main/src/main/java/com/teamsolply/solply/main/MainScreen.kt b/feature/main/src/main/java/com/teamsolply/solply/main/MainScreen.kt index 1b35f9c6..4dc4e80d 100644 --- a/feature/main/src/main/java/com/teamsolply/solply/main/MainScreen.kt +++ b/feature/main/src/main/java/com/teamsolply/solply/main/MainScreen.kt @@ -170,7 +170,7 @@ internal fun MainScreen( paddingValues = innerPadding, navigateToMaps = { mapsType -> val navOptions = navOptions {} - //TODO. 타운 아이디 + // TODO. 타운 아이디 navigator.navigateToMaps( mapsType = mapsType, townId = 0, @@ -182,7 +182,7 @@ internal fun MainScreen( paddingValues = innerPadding, navigateToMaps = { mapsType -> val navOptions = navOptions {} - //TODO. 타운 아이디 + // TODO. 타운 아이디 navigator.navigateToMaps( mapsType = mapsType, townId = 0, @@ -238,7 +238,7 @@ internal fun MainScreen( }, navigateToPlaceDetail = { val navOptions = navOptions {} - //TODO. 타운 아이디 + // TODO. 타운 아이디 navigator.navigateToMaps( mapsType = MapsType.PLACE_DETAIL.name, townId = 0, @@ -247,7 +247,7 @@ internal fun MainScreen( }, navigateToEditCourse = { val navOptions = navOptions {} - //TODO. 타운 아이디 + // TODO. 타운 아이디 navigator.navigateToMaps( mapsType = MapsType.EDIT_COURSE.name, townId = 0, @@ -284,7 +284,7 @@ internal fun MainScreen( paddingValues = innerPadding, navigateToMaps = { mapsType -> val navOptions = navOptions {} - //TODO. 타운 아이디 + // TODO. 타운 아이디 navigator.navigateToMaps( mapsType = mapsType, townId = 0, @@ -297,7 +297,7 @@ internal fun MainScreen( paddingValues = innerPadding, navigateToMaps = { mapsType -> val navOptions = navOptions { } - //TODO. 타운 아이디 + // TODO. 타운 아이디 navigator.navigateToMaps( mapsType = mapsType, townId = 0, diff --git a/feature/main/src/main/java/com/teamsolply/solply/main/component/MainBottomBar.kt b/feature/main/src/main/java/com/teamsolply/solply/main/component/MainBottomBar.kt index 4fedca0b..f97ea900 100644 --- a/feature/main/src/main/java/com/teamsolply/solply/main/component/MainBottomBar.kt +++ b/feature/main/src/main/java/com/teamsolply/solply/main/component/MainBottomBar.kt @@ -2,13 +2,8 @@ package com.teamsolply.solply.main.component import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.tween -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut import androidx.compose.animation.slideInHorizontally -import androidx.compose.animation.slideInVertically -import androidx.compose.animation.slideOut import androidx.compose.animation.slideOutHorizontally -import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -51,7 +46,8 @@ internal fun MainBottomBar( exit = slideOutHorizontally( animationSpec = tween(250), targetOffsetX = { it } - )) { + ) + ) { Box(modifier = modifier.fillMaxWidth()) { Row( modifier = Modifier diff --git a/feature/maps/src/main/java/com/teamsolply/solply/maps/component/bottomsheet/PlaceDetailBottomSheet.kt b/feature/maps/src/main/java/com/teamsolply/solply/maps/component/bottomsheet/PlaceDetailBottomSheet.kt index 63ffeb6b..fd0bc95f 100644 --- a/feature/maps/src/main/java/com/teamsolply/solply/maps/component/bottomsheet/PlaceDetailBottomSheet.kt +++ b/feature/maps/src/main/java/com/teamsolply/solply/maps/component/bottomsheet/PlaceDetailBottomSheet.kt @@ -178,7 +178,7 @@ fun PlaceDetailBottomSheet( .height(218.dp) .fillMaxWidth() .clip(RoundedCornerShape(20.dp)), - contentScale = ContentScale.Crop, + contentScale = ContentScale.Crop ) } Box( diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt index baac7a67..d82e8ff3 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceScreen.kt @@ -76,7 +76,9 @@ fun PlaceRoute( when (sideEffect) { is PlaceSideEffect.NavigateToMap -> { navigateToMaps( - MapsType.PLACE_DETAIL.name, state.townId, sideEffect.placeId + MapsType.PLACE_DETAIL.name, + state.townId, + sideEffect.placeId ) } } diff --git a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt index b9e1cad1..bd4d2635 100644 --- a/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt +++ b/feature/place/src/main/java/com/teamsolply/solply/place/PlaceViewModel.kt @@ -142,7 +142,7 @@ class PlaceViewModel @Inject constructor( townId = townId, mainTagId = mainTagId, subTagAIdList = subTagAIdList, - subTagBIdList = subTagBIdList, + subTagBIdList = subTagBIdList ).onSuccess { placeEntities -> reduce { copy(