import Combine import CoreLocation import MapKit import SwiftUI struct AttachmentLocationPickerView: View { @State var region = MKCoordinateRegion() @State var userInteracting = false var body: some View { ZStack { if userInteracting { Map( coordinateRegion: $region, interactionModes: .all, showsUserLocation: false, userTrackingMode: .constant(.none) ) .overlay { VStack { Spacer() HStack { Spacer() Image(systemName: "location.north.circle.fill") .resizable() .frame(width: 30, height: 30) .foregroundColor(.Material.Elements.active) .padding() .tappablePadding(.symmetric(10)) { userInteracting = false } } } } } else { Map( coordinateRegion: $region, interactionModes: .all, showsUserLocation: false, userTrackingMode: .constant(.follow) ) .gesture(DragGesture().onChanged { _ in userInteracting = true }) } Image(systemName: "mappin") .font(.system(size: 30)) .foregroundColor(.Material.Elements.active) } } }