Untitled
unknown
plain_text
2 years ago
17 kB
6
Indexable
// // AddressSelectionView.swift // Garageworks-iOS-Revamp // // Created by mac on 16/11/22. // import SwiftUI struct AddressSelectionFragmentView: View { @State var zoom : Float = 15.0 @ObservedObject private var viewModel = AddressSelectionObserver() @StateObject private var updateAddressObserver: UpdateCustomerAddressObserver = UpdateCustomerAddressObserver() @StateObject var getCustDetails: LoginObserver = LoginObserver() @State var currentLocation : Bool = false @State var address : (text : String,location : String) = ("","") @State var shouldShowAddressView = false @State private var sublocality = "" @State private var name = "" @State private var email = "" @State private var alternateMobile = "" @State private var isShowingAddAddressView = false @State var callAddAddress: Int? = nil @Environment(\.dismiss) var dismiss var body: some View { // NavigationView{ GeometryReader{ geometry in VStack{ NavigationLink(destination: AddAddressView().navigationBarHidden(true)){ HStack(spacing:20){ Image("Vector 1") .resizable() .frame(width: 8, height: 15) .padding(.leading,15) .foregroundColor(Color.init(hex: Colors.color_gr2)) Text(Strings.label_Please_select_your_address) .font(Font.custom(Fonts.product_regular, size: 16)) .foregroundColor(Color.init(hex: Colors.color_gr2)) Spacer() } .frame(width:geometry.size.width,alignment: .topLeading) .background(.white) .padding(.leading,25) .padding(.bottom,20) } ZStack{ ZStack(alignment: .top){ GoogleMapsView(zoom : $zoom,location: $viewModel.location, showCurrentLocation: $currentLocation, placeAddress: $viewModel.placeAddress, placePincode: $viewModel.placePincode, placeCity: $viewModel.placeCity, placeArea: $viewModel.placeArea, currentLocation: $viewModel.location) // .frame(width: geometry.size.width, height: geometry.size.height*0.7) .onAppear{ viewModel.fetchAddress() } .background() .onChange(of: viewModel.placePincode, perform: { _ in print("Value Changed!") viewModel.searchArea(pincode: viewModel.placePincode) }) VStack(alignment: .trailing){ NavigationLink(destination: PlaceView(location: $viewModel.location)) { HStack{ Image("search") .foregroundColor(.black) Text("Search Places") .foregroundColor(Color.init(hex: Colors.color_3f)) .font(Font.custom(Fonts.product_medium, size: 12)) } .padding(10) .background(.white) .clipShape(RoundedRectangle(cornerRadius: 20)) .padding(.leading,230) } // .navigationBarTitle("") // .navigationBarBackButtonHidden(true) // .navigationBarHidden(true) Spacer() Button{ currentLocation.toggle() currentLocation = true // print("GPS") }label: { Image("gps") .padding(10) .background(.orange) .frame(alignment: .trailing) }.clipShape(Circle()) VStack(spacing:1){ Button{ if(zoom<10){ zoom = 13 } zoom = zoom + 1 // print("add ",zoom) }label: { Image("add") } .padding(10) .background(.white) .cornerRadius(20, corners: [.topLeft, .topRight]) Button{ // print("minus",zoom) if(zoom>22){ zoom = 21 } if(zoom >= 10){ zoom = zoom - 1 } }label: { Image("minus") } .padding(10) .background(.white) .cornerRadius(20, corners: [.bottomLeft, .bottomRight]) } .padding(.bottom,70) } .frame(width: geometry.size.width, height: geometry.size.height*0.7) .padding(15) } .frame(width: geometry.size.width, height: geometry.size.height*0.96,alignment: .top) .cornerRadius(27, corners: [.topLeft, .topRight]) .background(.white) //MARK : Address show ZStack{ Spacer() // .frame(width: geometry.size.width, height: geometry.size.height) VStack(){ Text("Your Address") .padding() .font(Font.custom(Fonts.product_medium, size: 15)) .foregroundColor(Color.init(hex: Colors.color_gr2)) .frame(width: geometry.size.width, alignment: .topLeading) Text(viewModel.placeAddress) .padding() .foregroundColor(Color.init(hex: Colors.color_gr2)) .frame(width: geometry.size.width * 0.9, alignment: .topLeading) .background(Color.init(hex: Colors.color_wh)) .cornerRadius(10) .padding(.bottom,10) if shouldShowAddressView { VStack(spacing:10){ TextField("Flat/Building/Street", text: $sublocality) .padding() .foregroundColor(Color.init(hex: Colors.color_gr2)) .frame(width: geometry.size.width * 0.9, alignment: .topLeading) .background(Color.init(hex: Colors.color_wh)) .cornerRadius(10) Text(viewModel.placeArea) .padding() .foregroundColor(Color.init(hex: Colors.color_gr2)) .frame(width: geometry.size.width * 0.9, alignment:.topLeading) .background(Color.init(hex: Colors.color_wh)) .cornerRadius(10) TextField("Name", text: $name) .padding() .foregroundColor(Color.init(hex: Colors.color_gr2)) .frame(width: geometry.size.width * 0.9, alignment: .topLeading) .background(Color.init(hex: Colors.color_wh)) .cornerRadius(10) TextField("Email", text: $email) .padding() .foregroundColor(Color.init(hex: Colors.color_gr2)) .frame(width: geometry.size.width * 0.9, alignment: .topLeading) .background(Color.init(hex: Colors.color_wh)) .cornerRadius(10) TextField("Alternate No.", text: $alternateMobile) .padding() .foregroundColor(Color.init(hex: Colors.color_gr2)) .frame(width: geometry.size.width * 0.9, alignment: .topLeading) .background(Color.init(hex: Colors.color_wh)) .cornerRadius(10) HStack(spacing:5){ RadioButtonGroups { selected in print("Selected work_type is: \(selected)") UserDefaultsManager.storeSelectedWorkType(value: selected) print(UserDefaultsManager.fetchSelectedWorkType()) } .frame(height: 50) .padding(.leading,10) } .frame(width: geometry.size.width * 0.9, alignment: .topLeading) .background(Color.init(hex: Colors.color_wh)) .cornerRadius(10) .padding(.bottom,10) } } // VStack{ // Button(){ // print("get_area") // areaListObserver.searchArea(pincode: viewModel.placePincode) // if areaListObserver.isServicableArea == true{ // } // }label: { // NavigationLink(destination: AddAddressView().navigationBarHidden(true), tag: 1, selection: $callArea){ // NavigationLink(destination: ServiceSelectionView().navigationBarHidden(true), tag: 1, selection: $callAddAddress){ HStack{ Text(Strings.label_next) .frame(width: geometry.size.width * 0.9, height: 50) .font(Font.custom(Fonts.product_medium, size: 15)) .foregroundColor(Color.init(hex: Colors.color_wh)) } .background(Color.init(hex: Colors.color_or)) .cornerRadius(10) .disabled(!viewModel.isServicableArea) .opacity(viewModel.isServicableArea ? 1 : 0.5) // } .onTapGesture { // save area and placearea in userDefaults if name != "" && email != ""{ DispatchQueue.main.async { if shouldShowAddressView == true { print("--------------updateCustomerAddress---------------") updateAddressObserver.updateCustomerDetails( customer_id: UserDefaultsManager.fetchCustomer()?.customer_id ?? "", address_id: "", address_type: UserDefaultsManager.fetchSelectedWorkType() , address: sublocality, area: UserDefaultsManager.fetchSelectedArea()?.area ?? "", city: UserDefaultsManager.fetchSelectedArea()?.city ?? "", pincode: UserDefaultsManager.fetchSelectedArea()?.pincode ?? "", google_map: viewModel.placeAddress, latitude: UserDefaultsManager.fetchSelectedAreaName()?.latitude ?? "", longitude: UserDefaultsManager.fetchSelectedAreaName()?.longitude ?? "", gm_area_key: UserDefaultsManager.fetchSelectedArea()?.zone ?? "") print("--------------getCustomerDetails---------------") getCustDetails.getCustomerDetails(cust_id: UserDefaultsManager.fetchCustomer()?.customer_id ?? "") } dismiss() // self.callAddAddress = 1 } } // UserDefaultsManager.storeSelectedArea(value: viewModel.areas!) // debugPrint(UserDefaultsManager.fetchSelectedArea()?.area,"-------") // UserDefaultsManager.storeGoogleMapArea(value: viewModel.placeAddress) self.shouldShowAddressView = true } // }.isDetailLink(false) Text("") .frame(width: geometry.size.width,height: 20) .background(Color.init(hex: Colors.color_gr)) .padding(.bottom,6) } .background(Color.init(hex: Colors.color_gr), ignoresSafeAreaEdges: .bottom) .cornerRadius(27, corners: [.topLeft, .topRight]) } .frame(width: geometry.size.width, height: geometry.size.height*0.93,alignment: .bottom) } .frame(width: geometry.size.width,height: geometry.size.height*0.93,alignment: .top) } .frame(width: geometry.size.width,height: geometry.size.height) .background(.white) } .ignoresSafeArea(edges: .bottom) .navigationBarTitle("") .navigationBarBackButtonHidden(true) .navigationBarHidden(true) // } } } struct AddressSelectionFragmentView_Previews: PreviewProvider { static var previews: some View { AddressSelectionFragmentView() } } //struct GoToDashboard: View { // var body: some View { //// MARK: new user and Resigtered user dashboard values(area,city) update condition. // if UserDefaultsManager.fetchIsFrom() == true{ // MainHomeView() // } // else{ // MakeView() // } // } //}
Editor is loading...