Untitled
unknown
swift
2 years ago
21 kB
5
Indexable
// // NewHomeView.swift // Garageworks-iOS-Revamp // // Created by mac on 07/11/22. // import SwiftUI import ImageSliderSwiftUI import Alamofire struct NewHomeView: View { @StateObject private var customerObserver: CustomerDetailsObserver = CustomerDetailsObserver() @StateObject private var homeObserver: HomeObserver = HomeObserver(city: UserDefaultsManager.fetchSelectedArea()?.city ?? "", area_id: UserDefaultsManager.fetchSelectedArea()?.id ?? "",customer_id: UserDefaultsManager.fetchCustomer()?.customer_id ?? "") private let threeColumnGrid = [ GridItem(.flexible(minimum: 10)), GridItem(.flexible(minimum: 10)), GridItem(.flexible(minimum: 10))] @State var isMenuOpen: Bool = false @Binding var isShowRepairsAlertView: Bool @State private var selectedItem: String? var body: some View { GeometryReader { geometry in if homeObserver.isStatusTrue{ VStack{ VStack{ HStack{ NavigationLink(destination:AddressSelectionView().navigationBarHidden(true)){ VStack{ HStack{ Text("Your Location") .font(Font.custom(Fonts.product_regular, size: 12)) .foregroundColor(Color.init(hex: "#6F777A")) Image("openList") .resizable() .frame(width:8,height:4) Spacer() } // .frame(width:geometry.size.width * 0.9) .padding(.top,05) HStack{ Image("location 1") .resizable() .frame(width:20,height:20) if UserDefaultsManager.fetchCustomerAddress() != nil{ if(UserDefaultsManager.fetchIsAddressChanged()) { Text("\(UserDefaultsManager.fetchSelectedArea()?.area ?? "") , \(UserDefaultsManager.fetchSelectedArea()?.city ?? "") ") .font(Font.custom(Fonts.product_medium, size: 14)) .foregroundColor(Color.init(hex:"#273337")) .padding(.leading,05) }else { Text("\(UserDefaultsManager.fetchCustomerAddress()?.area ?? "") , \(UserDefaultsManager.fetchCustomerAddress()?.city ?? "") ") .font(Font.custom(Fonts.product_medium, size: 14)) .foregroundColor(Color.init(hex:"#273337")) .padding(.leading,05) } } else { Text("\(UserDefaultsManager.fetchSelectedArea()?.area ?? "") , \(UserDefaultsManager.fetchSelectedArea()?.city ?? "") ") .font(Font.custom(Fonts.product_medium, size: 14)) .foregroundColor(Color.init(hex:"#273337")) .padding(.leading,05) } Spacer() } // .padding(.bottom,05) // .padding([.leading],20) // .padding([.trailing],20) } // .onTapGesture { // isFromDashboard = true // } } Image("notification1") .resizable() .frame(width: 24, height: 24, alignment: .trailing) //.padding(.bottom,20) } .padding(.all) Image("notification1") .resizable() .frame(width: 24, height: 24, alignment: .trailing) //.padding(.bottom,20) } .padding(.all) NavigationLink(destination: MyVehiclesView().navigationBarHidden(true)){ VStack{ HStack{ Text("Your Vehicles") .font(Font.custom(Fonts.product_regular, size: 16)) .foregroundColor(Color.init(hex:"#0F1C21")) Spacer() Text("+Add") .font(Font.custom(Fonts.product_medium, size: 16)) .foregroundColor(Color.init(hex:"#F08632")) } .frame(width:geometry.size.width * 0.88,height: 15) .padding(.bottom,05) HStack{ // Image("Frame 255bike") // .renderingMode(.original) // .resizable() // .aspectRatio(contentMode: .fit) // .frame(width: geometry.size.width * 0.16, height: 50) if (UserDefaultsManager.fetchCustomerVehicleList() != nil && !UserDefaultsManager.fetchCustomerVehicleList().isEmpty) { // binding.homeToolbar.vehicleName.text = vehicle[0].vehicle_make + vehicle[0].modelName let vehicle = UserDefaultsManager.fetchSelectedCustomerVehicle() AsyncImage(url: URL(string: vehicle?.vehicle_category_icon ?? ""), content: { image in image .resizable() .aspectRatio(contentMode: .fit) }, placeholder: {}) .frame(width: geometry.size.width * 0.16, height: 50) Text(("\(vehicle?.make_name ?? "") \(vehicle?.model_name ?? "")")) .font(Font.custom(Fonts.product_medium, size: 16)) .foregroundColor(Color.init(hex:"#FFFFFF")) .frame(width: geometry.size.width * 0.55, height: 40, alignment: .trailing) } else{ AsyncImage(url: URL(string: UserDefaultsManager.fetchSelectedModel()?.vehicle_category_icon ?? ""), content: { image in image .resizable() .aspectRatio(contentMode: .fit) }, placeholder: {}) .frame(width: geometry.size.width * 0.16, height: 50) Text(("\(UserDefaultsManager.fetchSelectedMake()?.make_name ?? "") \(UserDefaultsManager.fetchSelectedModel()?.model_name ?? "")")) .font(Font.custom(Fonts.product_medium, size: 16)) .foregroundColor(Color.init(hex:"#FFFFFF")) .frame(width: geometry.size.width * 0.55, height: 40, alignment: .trailing) } // if UserDefaultsManager.fetchCustomerVehicle() == nil{ // if UserDefaultsManager.fetchIsVehicleChanged(){ // AsyncImage(url: URL(string: UserDefaultsManager.fetchCustomerVehicle()?.vehicle_category_icon ?? ""), // content: { image in // image // .resizable() // .aspectRatio(contentMode: .fit) // }, // placeholder: { // ProgressView() // }) // .frame(width: geometry.size.width * 0.16, height: 50) // Text(("\(UserDefaultsManager.fetchCustomerVehicle()?.make_name ?? "") \(UserDefaultsManager.fetchCustomerVehicle()?.model_name ?? "")")) // .font(Font.custom(Fonts.product_medium, size: 16)) // .foregroundColor(Color.init(hex:"#FFFFFF")) // .frame(width: geometry.size.width * 0.55, height: 40, alignment: .trailing) // // // } else{ // AsyncImage(url: URL(string: UserDefaultsManager.fetchSelectedCustomerVehicle()?.vehicle_category_icon ?? ""), // content: { image in // image // .resizable() // .aspectRatio(contentMode: .fit) // }, // placeholder: { // ProgressView() // }) // .frame(width: geometry.size.width * 0.16, height: 50) // Text(("\(UserDefaultsManager.fetchSelectedCustomerVehicle()?.make_name ?? "") \(UserDefaultsManager.fetchSelectedCustomerVehicle()?.model_name ?? "")")) // .font(Font.custom(Fonts.product_medium, size: 16)) // .foregroundColor(Color.init(hex:"#FFFFFF")) // .frame(width: geometry.size.width * 0.55, height: 40, alignment: .trailing) // } // } else { // AsyncImage(url: URL(string: UserDefaultsManager.fetchSelectedCustomerVehicle()?.vehicle_category_icon ?? ""), // content: { image in // image // .resizable() // .aspectRatio(contentMode: .fit) // }, // placeholder: { // ProgressView() // }) // .frame(width: geometry.size.width * 0.16, height: 50) // Text(("\(UserDefaultsManager.fetchSelectedCustomerVehicle()?.make_name ?? "") \(UserDefaultsManager.fetchSelectedCustomerVehicle()?.model_name ?? "")")) // .font(Font.custom(Fonts.product_medium, size: 16)) // .foregroundColor(Color.init(hex:"#FFFFFF")) // .frame(width: geometry.size.width * 0.55, height: 40, alignment: .trailing) // } Image("Vector 7") .resizable() .frame(width:5,height:11) // .frame(width: geometry.size.width * 0.13, height: 40) } } .navigationBarTitle("") .navigationBarBackButtonHidden(true) .navigationBarHidden(true) } .navigationBarTitle("") .navigationBarBackButtonHidden(true) .navigationBarHidden(true) } .frame(width:geometry.size.width ,height: geometry.size.height * 0.25,alignment: .bottom) .padding(.bottom,10) // .background(.red) VStack{ HStack{ if !homeObserver.loading { ImageSlider(homeObserver.sliderImages) .frame(width: geometry.size.width*0.9, height:200,alignment: .center) } else{ ProgressView() .padding(.top,100) } } .frame(width: geometry.size.width*0.9, height:230,alignment: .top) // .background(.green) // .padding(.top,25) VStack{ LazyVGrid(columns: threeColumnGrid, alignment: .center) { ForEach(homeObserver.homePageResponse?.services ?? [], id: \.self) { services in NavigationLink(destination: ServicePackagesView().navigationBarHidden(true),tag: services.id!, selection: $selectedItem){ VStack(spacing:15){ AsyncImage(url: URL(string: services.service_images ?? ""),scale: 4) // .padding(.top,03) .frame(width: 50, height: 50) .background(Color(hex: "#F1F2FD")) .cornerRadius(10) // .shadow(radius: 0.9) .background(Color.init(hex: "#d7d7d7").blur(radius: 10)) Text(services.service_name ?? "") .font(Font.custom(Fonts.product_regular, size: 14)) .foregroundColor(Color.init(hex:"#0F1C21")) .frame(alignment: .center) } .onTapGesture{ UserDefaultsManager.storeSelectedService(value: services) print(services.service_name ?? "","--------------id----------") if services.is_allowed == "1" && services.id != "2"{ selectedItem = services.id! } else if services.is_normal_flow == false { isShowRepairsAlertView = true } else{ //make lead api call //show coming soon text } } } } } .frame(width:geometry.size.width * 0.93, height:geometry.size.height * 0.50,alignment: .top) } .frame(width:geometry.size.width ,height:geometry.size.height * 0.83) .background(Color.init(hex: "#F1F2FD")) .cornerRadius(30, corners: [.topLeft, .topRight]) } .background(.white) .onAppear{ customerObserver.getCustomerDetails(cust_id: UserDefaultsManager.fetchCustomer()?.customer_id ?? "") UserDefaultsManager.storeSelectedComplaints(value: []) UserDefaultsManager.storeSelectedLabour(value: []) UserDefaultsManager.storeSelectedSpares(value: []) } } else { ProgressView() .frame(width:geometry.size.width, height:geometry.size.height * 0.95,alignment: .center) } // if UserDefaultsManager.fetchSelectedService()?.id == "2"{ // } } .navigationBarTitle("") .navigationBarBackButtonHidden(true) .navigationBarHidden(true) } } struct NewHomeView_Previews: PreviewProvider { static var previews: some View { NewHomeView(isShowRepairsAlertView: .constant(false)) } } //struct DetailView: View { // var body: some View { // NavigationView{ // VStack{ //// Text("Click here") //// .onTapGesture { //// print("-------------") //// print(UserDefaultsManager.fetchSelectedService()?.is_allowed) //// print(UserDefaultsManager.fetchSelectedService()?.id) //// print(UserDefaultsManager.fetchSelectedService()?.is_normal_flow) //// print("-------------") //// } // if UserDefaultsManager.fetchSelectedService()?.is_allowed == "1" && UserDefaultsManager.fetchSelectedService()?.id != "2"{ // PerodicServiceView() // } // else if UserDefaultsManager.fetchSelectedService()?.is_normal_flow == false { //// RepairsView() // } // else{ // //leads // //coming soon // Text("else") // .foregroundColor(.black) // } // } // .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height) // .background(.red) // } // } //} // //if UserDefaultsManager.fetchCustomerVehicle() != nil{ // Text(("\(UserDefaultsManager.fetchSelectedCustomerVehicle()?.make_name ?? "") \(UserDefaultsManager.fetchSelectedCustomerVehicle()?.model_name ?? "")")) // .font(Font.custom(Fonts.product_medium, size: 16)) // .foregroundColor(Color.init(hex:"#FFFFFF")) // .frame(width: geometry.size.width * 0.55, height: 40, alignment: .trailing) //// if UserDefaultsManager.fetchCustomerVehicle() != nil { //// //// } else{ //// //// } //} else { // Text(("\(UserDefaultsManager.fetchSelectedCustomerVehicle()?.make_name ?? "") \(UserDefaultsManager.fetchSelectedCustomerVehicle()?.model_name ?? "")")) // .font(Font.custom(Fonts.product_medium, size: 16)) // .foregroundColor(Color.init(hex:"#FFFFFF")) // .frame(width: geometry.size.width * 0.55, height: 40, alignment: .trailing) // Text(("\(UserDefaultsManager.fetchCustomerVehicle()?.make_name ?? "") \(UserDefaultsManager.fetchCustomerVehicle()?.model_name ?? "")")) // .font(Font.custom(Fonts.product_medium, size: 16)) // .foregroundColor(Color.init(hex:"#FFFFFF")) // .frame(width: geometry.size.width * 0.55, height: 40, alignment: .trailing) //}
Editor is loading...