Untitled
unknown
swift
2 years ago
18 kB
9
Indexable
// // PhotoSelectorView.swift // Garageworks-iOS-Revamp // // Created by DigitalFlake Kapil Dongre on 13/01/23. // import SwiftUI import Foundation import UIKit enum PhotoSheetType: Identifiable { /// 1. var id: UUID { UUID() } case gallery case camera } struct DocumentVaultView: View { @Environment(\.presentationMode) var presentationMode @State private var image = UIImage(systemName: "xmark")! private var url: URL { let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) return paths[0].appendingPathComponent("image.jpg") } //@State private var showingActionSheet = false @State private var selection = "None" /// 2. @State private var showingType: PhotoSheetType? @State private var showingActionSheet = false @State private var isShowPhotoLibrary = false @State private var rcFront = UIImage() @State private var rcRear = UIImage() @State private var drivingLicenceFront = UIImage() @State private var drivingLicenceRear = UIImage() @State private var pucFront = UIImage() @State private var pucRear = UIImage() @State private var rcFrontTag = "" var body: some View { GeometryReader{geometry in VStack { HStack(spacing: 20){ Button(){ print("Back navigationCross button pressed") self.presentationMode.wrappedValue.dismiss() }label: { Image("arrow-left") .resizable() .frame(width: 20, height: 20) } Text("Document Vault") .font(.system(size: 16, weight: .regular)) Spacer() } .padding(.leading, 20) VStack{ VStack(alignment: .leading, spacing: 20){ //MARK: RC image VStack(alignment: .leading){ Text("Rc Book") .padding(.leading, 20) HStack{ VStack(spacing: 15){ ZStack{ //default image // Image("thumbnailAdd") // .frame(width: geometry.size.width * 0.4, height: 70) // .background() // .cornerRadius(10) Image(uiImage: getImage(nameAndExtension: "Rc_front.png") ?? UIImage(named: "thumbnailAdd")!) .resizable() .aspectRatio(contentMode: .fit) .frame(width: geometry.size.width * 0.4, height: 70) .background() .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1, dash: [10.0])) .foregroundColor(.orange)) .cornerRadius(10) .onTapGesture { print("Rc item1 pressed") self.showingActionSheet = true self.rcFrontTag = "RC_Front" // let document = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true) // let imgUrl = document.appendingPathComponent("RCFront", isDirectory: true) // print("imgUrl: \(imgUrl)") //url.saveImage(image) } } .padding(.leading, 20) .padding(.trailing, 15) Text("Front") } VStack{ ZStack{ //default image // Image("thumbnailAdd") // .frame(width: geometry.size.width * 0.4, height: 70) // .background() // .cornerRadius(10) //Set image Image(uiImage: getImage(nameAndExtension: "Rc_back.png") ?? UIImage(named: "thumbnailAdd")!) .resizable() .aspectRatio(contentMode: .fit) .frame(width: geometry.size.width * 0.4, height: 70) .background() .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1, dash: [10.0])) .foregroundColor(.orange)) .cornerRadius(10) .onTapGesture { print("Rc back pressed") self.rcFrontTag = "RC_Back" self.showingActionSheet = true } } .padding(.trailing, 20) Text("Rear") } } } //MARK: Driving Licence VStack(alignment: .leading){ Text("Driving Licence") .padding(.leading, 20) HStack{ VStack{ ZStack{ //default image Image(uiImage: getImage(nameAndExtension: "DL_Front.png") ?? UIImage(named: "thumbnailAdd")!) .resizable() .aspectRatio(contentMode: .fit) .frame(width: geometry.size.width * 0.4, height: 70) .background() .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1, dash: [10.0])) .foregroundColor(.orange)) .cornerRadius(10) .onTapGesture { print("Driving License front pressed") self.rcFrontTag = "DL_Front" self.showingActionSheet = true } } .padding(.leading, 20) .padding(.trailing, 15) Text("Front") } VStack{ ZStack{ //default image Image(uiImage: getImage(nameAndExtension: "DL_Rear.png") ?? UIImage(named: "thumbnailAdd")!) .resizable() .aspectRatio(contentMode: .fit) .frame(width: geometry.size.width * 0.4, height: 70) .background() .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1, dash: [10.0])) .foregroundColor(.orange)) .cornerRadius(10) .cornerRadius(10) .onTapGesture { print("DL_Rear pressed") self.rcFrontTag = "DL_Rear" self.showingActionSheet = true } } .padding(.trailing, 20) Text("Rear") } } } //MARK: PUC VStack(alignment: .leading){ Text("PUC") .padding(.leading, 20) HStack{ VStack{ ZStack{ //default image Image(uiImage: getImage(nameAndExtension: "PUC_Front.png") ?? UIImage(named: "thumbnailAdd")!) .resizable() .aspectRatio(contentMode: .fit) .frame(width: geometry.size.width * 0.4, height: 70) .background() .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1, dash: [10.0])) .foregroundColor(.orange)) .cornerRadius(10) .cornerRadius(10) .onTapGesture { print("PUC_Front pressed") self.rcFrontTag = "PUC_Front" self.showingActionSheet = true } } .padding(.leading, 20) .padding(.trailing, 15) Text("Front") } VStack{ ZStack{ //default image Image(uiImage: getImage(nameAndExtension: "PUC_Rear.png") ?? UIImage(named: "thumbnailAdd")!) .resizable() .aspectRatio(contentMode: .fit) .frame(width: geometry.size.width * 0.4, height: 70) .background() .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1, dash: [10.0])) .foregroundColor(.orange)) .cornerRadius(10) .cornerRadius(10) .onTapGesture { print("PUC_Rear pressed") self.rcFrontTag = "PUC_Rear" self.showingActionSheet = true } } .padding(.trailing, 20) Text("Rear") } } } //MARK: Upload Insurance VStack(alignment: .leading){ Text("Insurance Policy") .padding(.leading, 20) Button(action: { print("Upload insurance") }, label: { HStack{ Image("addPdf") .resizable() .frame(width: 50, height: 50) .padding(.trailing, 15) .padding(.leading, 20) Text("Upload Policy Document") .foregroundColor(.black) Spacer() } .frame(width: geometry.size.width * 0.9, height: 90) .background() .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1, dash: [10.0])) .foregroundColor(.orange)) }) .padding([.leading, .trailing], 20) //.frame(width: geometry.size.width * 0.9, height: 90) } } .padding(.top, 25) Spacer() }.frame(maxWidth: UIScreen.main.bounds.width, maxHeight: UIScreen.main.bounds.height).background(Color(red: 0.945, green: 0.949, blue: 0.992)).cornerRadius(25, corners: [.topLeft, .topRight]).edgesIgnoringSafeArea(.bottom) } .onAppear { //url.loadImage(image) print("navigating to current screen") } .actionSheet(isPresented: $showingActionSheet) { ActionSheet( title: Text("Select a Action"), buttons: [ .default(Text("Select photo from gallery")) { showingType = .gallery isShowPhotoLibrary = true }, .default(Text("Capture photo from camera")) { //selection = "Open Camera" showingType = .camera isShowPhotoLibrary = true }, .cancel(Text("Cancel")) ] ) } .sheet(isPresented: $isShowPhotoLibrary) { //type in if showingType == .gallery { ImagePickerView(sourceType: .photoLibrary, showingType: $showingType, selectedRCfront: self.$rcFront, buttonTag: $rcFrontTag) } else { ImagePickerView(sourceType: .camera, showingType: $showingType, selectedRCfront: self.$rcFront, buttonTag: $rcFrontTag) } } } } } struct PhotoSelectorView_Previews: PreviewProvider { static var previews: some View { DocumentVaultView() } }
Editor is loading...