BusinessCard/BusinessCard/Views/Features/Share/QRScannerRepresentable.swift

32 lines
881 B
Swift

import SwiftUI
struct QRScannerRepresentable: UIViewControllerRepresentable {
@Binding var scannedCode: String?
func makeUIViewController(context: Context) -> QRScannerViewController {
let controller = QRScannerViewController()
controller.delegate = context.coordinator
return controller
}
func updateUIViewController(_ uiViewController: QRScannerViewController, context: Context) {}
func makeCoordinator() -> Coordinator {
Coordinator(scannedCode: $scannedCode)
}
final class Coordinator: NSObject, QRScannerViewControllerDelegate {
@Binding var scannedCode: String?
init(scannedCode: Binding<String?>) {
_scannedCode = scannedCode
}
func didScanCode(_ code: String) {
Task { @MainActor in
scannedCode = code
}
}
}
}