Untitled
unknown
plain_text
3 years ago
20 kB
9
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
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)
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)
}
.frame(width:geometry.size.width * 0.88,height: 70)
.background(Color(hex: Colors.color_bl))
.cornerRadius(15)
}
}
.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: [])
}
// 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...