34 lines
1.1 KiB
Swift
34 lines
1.1 KiB
Swift
import Foundation
|
|
import SwiftUI
|
|
|
|
/// A simplified card structure synced from the iOS app via WatchConnectivity
|
|
struct WatchCard: Codable, Identifiable, Hashable {
|
|
let id: UUID
|
|
var fullName: String
|
|
var role: String
|
|
var company: String
|
|
var email: String
|
|
var phone: String
|
|
var website: String
|
|
var location: String
|
|
var isDefault: Bool
|
|
/// Pre-generated QR code PNG data from iOS (CoreImage not available on watchOS)
|
|
var qrCodeImageData: Data?
|
|
/// Pre-generated App Clip URL QR code PNG data
|
|
var appClipQRCodeImageData: Data?
|
|
|
|
/// Returns a SwiftUI Image from the synced vCard QR code data
|
|
var qrCodeImage: Image? {
|
|
guard let data = qrCodeImageData,
|
|
let uiImage = UIImage(data: data) else { return nil }
|
|
return Image(uiImage: uiImage)
|
|
}
|
|
|
|
/// Returns a SwiftUI Image from the synced App Clip QR code data
|
|
var appClipQRCodeImage: Image? {
|
|
guard let data = appClipQRCodeImageData,
|
|
let uiImage = UIImage(data: data) else { return nil }
|
|
return Image(uiImage: uiImage)
|
|
}
|
|
}
|