Add lead workflows, PDF signing, AR projects and photo gallery integration
This commit is contained in:
44
GasTankAR/Views/Leads/Signing/LeadSignatureCanvas.swift
Normal file
44
GasTankAR/Views/Leads/Signing/LeadSignatureCanvas.swift
Normal file
@ -0,0 +1,44 @@
|
||||
import SwiftUI
|
||||
import PencilKit
|
||||
|
||||
struct LeadSignatureCanvas: UIViewRepresentable {
|
||||
@Binding var drawing: PKDrawing
|
||||
@Environment(\.colorScheme) private var colorScheme
|
||||
|
||||
func makeUIView(context: Context) -> PKCanvasView {
|
||||
let view = PKCanvasView()
|
||||
view.delegate = context.coordinator
|
||||
view.drawingPolicy = .anyInput
|
||||
// PencilKit renders black ink as white in Dark Mode, including existing strokes.
|
||||
// Keep the stored ink black; the PDF service exports onto a white document.
|
||||
view.tool = PKInkingTool(.pen, color: .black, width: 2)
|
||||
view.overrideUserInterfaceStyle = colorScheme == .dark ? .dark : .light
|
||||
view.backgroundColor = .clear
|
||||
view.isOpaque = false
|
||||
view.isScrollEnabled = false
|
||||
view.drawing = drawing
|
||||
view.accessibilityLabel = "Unterschrift"
|
||||
view.accessibilityHint = "Mit Finger oder Apple Pencil unterschreiben"
|
||||
return view
|
||||
}
|
||||
|
||||
func updateUIView(_ view: PKCanvasView, context: Context) {
|
||||
context.coordinator.parent = self
|
||||
view.overrideUserInterfaceStyle = colorScheme == .dark ? .dark : .light
|
||||
if view.drawing != drawing {
|
||||
view.drawing = drawing
|
||||
}
|
||||
}
|
||||
|
||||
func makeCoordinator() -> Coordinator { Coordinator(parent: self) }
|
||||
|
||||
final class Coordinator: NSObject, PKCanvasViewDelegate {
|
||||
var parent: LeadSignatureCanvas
|
||||
|
||||
init(parent: LeadSignatureCanvas) { self.parent = parent }
|
||||
|
||||
func canvasViewDrawingDidChange(_ canvasView: PKCanvasView) {
|
||||
parent.drawing = canvasView.drawing
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user