From c499608cf119fd09d7ee205a04928fe731dc874d Mon Sep 17 00:00:00 2001 From: hooni Date: Fri, 24 Jan 2025 16:20:14 +0900 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20#166=20-=20=EC=A7=80=EB=8F=84=20?= =?UTF-8?q?=EB=A7=88=EC=BB=A4=20=ED=81=B4=EB=A6=AD=EC=8B=9C=20=ED=94=8C?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=8A=A4=20=ED=95=B4=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Source/Feature/Home/NMapView.swift | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift index c62dae8..f1f74bf 100644 --- a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift +++ b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift @@ -60,7 +60,11 @@ struct NMapView: UIViewRepresentable { } func makeCoordinator() -> Coordinator { - Coordinator(selectedPlace: $selectedPlace, defaultMarkerImage: defaultMarker) + Coordinator( + selectedPlace: $selectedPlace, + defaultMarkerImage: defaultMarker, + viewModel: viewModel + ) } func updateUIView(_ mapView: NMFMapView, context: Context) { @@ -168,28 +172,30 @@ final class Coordinator: NSObject, NMFMapViewTouchDelegate { @Binding var selectedPlace: CardPlace? var markers: [NMFMarker] = [] private let defaultMarkerImage: NMFOverlayImage + private let viewModel: HomeViewModel - init(selectedPlace: Binding, defaultMarkerImage: NMFOverlayImage) { + init(selectedPlace: Binding, + defaultMarkerImage: NMFOverlayImage, + viewModel: HomeViewModel) { self._selectedPlace = selectedPlace self.defaultMarkerImage = defaultMarkerImage + self.viewModel = viewModel } - func mapView(_ mapView: NMFMapView, didTap symbol: NMFSymbol) -> Bool { + @MainActor private func mapView(_ mapView: NMFMapView, didTapMap latlng: NMGLatLng) -> Bool { selectedPlace = nil - return true - } - - func mapView(_ mapView: NMFMapView, didTapMap latlng: NMGLatLng) -> Bool { - if selectedPlace != nil { - selectedPlace = nil - markers.forEach { marker in - marker.mapView = nil - marker.iconImage = defaultMarkerImage - // 지도를 탭했을 때도 캡션 설정 유지 - marker.mapView = mapView + + markers.forEach { marker in + marker.iconImage = defaultMarkerImage + marker.captionMinZoom = 10 + } + + if !viewModel.focusedPlaces.isEmpty { + DispatchQueue.main.async { + self.viewModel.clearFocusedPlaces() } - return true } - return false + + return true } } From b6361ec9dc4a820cc439477d36d08d19b7e3667b Mon Sep 17 00:00:00 2001 From: hooni Date: Fri, 24 Jan 2025 17:23:35 +0900 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20#=20166=20=EB=B8=8C=EB=9E=9C?= =?UTF-8?q?=EC=B9=98=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift index f1f74bf..cdb8a1b 100644 --- a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift +++ b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/NMapView.swift @@ -182,7 +182,7 @@ final class Coordinator: NSObject, NMFMapViewTouchDelegate { self.viewModel = viewModel } - @MainActor private func mapView(_ mapView: NMFMapView, didTapMap latlng: NMGLatLng) -> Bool { + @MainActor func mapView(_ mapView: NMFMapView, didTapMap latlng: NMGLatLng) -> Bool { selectedPlace = nil markers.forEach { marker in From 83b024bda1f69df25d2e01bea2536525ab124d7c Mon Sep 17 00:00:00 2001 From: hooni Date: Fri, 24 Jan 2025 17:34:30 +0900 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=EC=95=8C=EA=B3=A0=EB=A6=AC?= =?UTF-8?q?=EC=A6=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlaceHolderCardView/PlaceImagesLayout.swift | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift index cf68855..0afae60 100644 --- a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift +++ b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift @@ -10,12 +10,16 @@ import SwiftUI struct PlaceImagesLayout: View { let images: [String] + private var limitedImages: [String] { + Array(images.prefix(3)) + } + var body: some View { HStack(spacing: 1) { - switch images.count { + switch limitedImages.count { case 1: imageView( - urlString: images[0], + urlString: limitedImages[0], width: nil, height: 108.adjusted, corners: [.topLeft, .topRight] @@ -23,7 +27,7 @@ struct PlaceImagesLayout: View { case 2: ForEach(0..<2, id: \.self) { index in imageView( - urlString: images[index], + urlString: limitedImages[index], width: nil, height: 108.adjusted, corners: index == 0 ? [.topLeft] : [.topRight] @@ -33,7 +37,7 @@ struct PlaceImagesLayout: View { case 3: ForEach(0..<3, id: \.self) { index in imageView( - urlString: images[index], + urlString: limitedImages[index], width: 108.adjusted, height: 108.adjusted, corners: index == 0 ? [.topLeft] : (index == 2 ? [.topRight] : []) @@ -54,6 +58,7 @@ struct PlaceImagesLayout: View { ) } + // 기존 imageView 함수는 그대로 유지 private func imageView(urlString: String, width: CGFloat?, height: CGFloat, corners: UIRectCorner) -> some View { AsyncImage(url: URL(string: urlString)) { phase in switch phase { From f6ef9aa5b5a1174ac2dbf3a291f767a4ff0ca6a2 Mon Sep 17 00:00:00 2001 From: hooni Date: Fri, 24 Jan 2025 17:38:43 +0900 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20#166=20=EC=88=98=EC=A0=80=20?= =?UTF-8?q?=EC=A3=BC=EC=86=8C=EB=AA=85=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ㄹㄷ --- .../Feature/Home/Components/PlaceHolderCardView/PlaceCard.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceCard.swift b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceCard.swift index 45464cd..435939b 100644 --- a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceCard.swift +++ b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceCard.swift @@ -147,7 +147,7 @@ private struct PlaceInfoSection: View { .customFont(.body2sb) .lineLimit(1) .foregroundStyle(.gray900) - Text(place.address) + Text("서울시 \(place.address) 수저") .customFont(.caption1m) .foregroundColor(.gray600) } From 2d00edcd7009eaceb7de71f8187d74096ecfaf6c Mon Sep 17 00:00:00 2001 From: hooni Date: Fri, 24 Jan 2025 17:51:22 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20#166=20=EC=A3=BC=EC=84=9D=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift index 0afae60..15256aa 100644 --- a/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift +++ b/Spoony-iOS/Spoony-iOS/Source/Feature/Home/Components/PlaceHolderCardView/PlaceImagesLayout.swift @@ -58,7 +58,6 @@ struct PlaceImagesLayout: View { ) } - // 기존 imageView 함수는 그대로 유지 private func imageView(urlString: String, width: CGFloat?, height: CGFloat, corners: UIRectCorner) -> some View { AsyncImage(url: URL(string: urlString)) { phase in switch phase {