Untitled

 avatar
unknown
plain_text
2 years ago
6.3 kB
5
Indexable
//
//  DeleteAlertView.swift
//  Garageworks-iOS-Revamp
//
//  Created by DigitalFlake Kapil Dongre on 31/01/23.
//

import SwiftUI

struct DeleteVehicleAlertView: View {
    
    @Binding var isDeleteAlertShown: Bool
    @State var dateTapped: Int? = 0
    @State private var showYOMText: String = ""
    @State var isShown:Bool = false
    @StateObject var  deleteVehicle = DeleteVehicleObserver()
    var vehicle_id = UserDefaultsManager.fetchVehicleID()
    @StateObject private var customerObserver: CustomerDetailsObserver = CustomerDetailsObserver()
    
    var body: some View {
        
        ZStack(alignment: .center){
            if(isDeleteAlertShown){
                Color.black
                    .opacity(0.3)
                    .ignoresSafeArea()
                    .onTapGesture {
                        print("Delete blank screen pressed")
                        isDeleteAlertShown.toggle()
                    }
                VStack(alignment: .center){
                    
                    VStack(spacing: 15){
                        Text("Are you sure you want to delete this vehicle?")
                            .multilineTextAlignment(.center)
                            .padding([.leading, .trailing], 10)
                        
                        
                        HStack{
                            Button(action: {
                                print("no delete vehicle btn pressed")
                                
                                isDeleteAlertShown.toggle()
                            }, label: {
                                Text("No")
                                    .foregroundColor(.black)
                                    
                            })
                            .frame(width: 135)
                            .padding(.leading, 5)
                            
                            Spacer()
                            
                            Button(action: {
                                print("delete vehicle btn pressed of ID \(UserDefaultsManager.fetchVehicleID())")
                                
                                DispatchQueue.main.async {
                                    deleteVehicle.deleteVehicle(customer_id: UserDefaultsManager.fetchCustomer()?.customer_id ?? "", vehicle_id: UserDefaultsManager.fetchSelectedCustomerVehicle()?.vehicle_id ?? "")
                                    
                                    if !Connectivity.isConnectedToInternet(){
                                        //Do something if network not found
                                        isDeleteAlertShown.toggle()
                                        return
                                    }
                                    
                                    //MARK: Network Call
                                    
                                    let data = ["customer_id": UserDefaultsManager.fetchCustomer()?.customer_id ?? "", "vehicle_id": vehicle_id]
                                    
                                    NetworkManager(data: data, url: nil, service: .delete_customer_vehicle, method: .post, isJSONRequest: false).executeQuery { (result: Result<BaseResponse<Bool>, Error>) in
                                        switch  result{
                                        case .success(let response):
                                            if response.status{
                                               // self.deleteVehicle = response.result.data
                                                //                    DispatchQueue.main.async {
                                                //                        self.custDetails?.getCustomerDetails(cust_id: UserDefaultsManager.fetchCustomer()?.customer_id ?? "")
                                                //                    }
                                                var vehicleList = UserDefaultsManager.fetchCustomerVehicleList()
                                                
                                                vehicleList = vehicleList.filter { $0.vehicle_id != vehicle_id }
                                                                                            
                                                UserDefaultsManager.storeCustomerVehicleList(value: vehicleList)
                                                self.customerObserver.getCustomerDetails(cust_id: UserDefaultsManager.fetchCustomer()?.customer_id ?? "")
                                                
                                               // self.isStatusTrue = response.status
                                            }
                                            
                                            print(response)
                                            
                                            
                                        case  .failure(let error):
                                            print(error)
                                            
                                        }
                                        isDeleteAlertShown.toggle()
                                    }
                                    
                                }
                                
                                
                            }, label: {
                                Text("Yes")
                                    .foregroundColor(.white)
                                    .padding()
                            })
                            .frame(width: 135)
                            .background(.orange)
                            .cornerRadius(12)
                        }
                        .frame(width: UIScreen.main.bounds.width - 60)
                    }
                }
                .frame(width: UIScreen.main.bounds.width - 40)
                .padding([.top, .bottom], 12)
                .padding([.leading, .trailing], 5)
                .background()
                .cornerRadius(12)
                
            }
        }
        .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottom)
        .ignoresSafeArea()
        .animation(.easeInOut, value: isDeleteAlertShown)
    }
}

Editor is loading...