Untitled
unknown
swift
3 years ago
18 kB
12
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...