// // SharingImageModels.swift // Reflect // // Created by Trey Tartt on 2/24/22. // import SwiftUI import LinkPresentation class ShareImageStateViewModel: ObservableObject { @Published var selectedShareImage: UIImage? = nil @Published var showSheet = false } class ShareActivityItemSource: NSObject, UIActivityItemSource { var shareText: String var shareImage: UIImage var linkMetaData = LPLinkMetadata() init(shareText: String, shareImage: UIImage) { self.shareText = shareText self.shareImage = shareImage linkMetaData.title = shareText super.init() } func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any { return UIImage(named: "AppIcon") as Any } func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? { return nil } func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? { return linkMetaData } } struct ShareSheet: UIViewControllerRepresentable { let photo: UIImage func makeUIViewController(context: Context) -> UIActivityViewController { let text = "ifeel" let itemSource = ShareActivityItemSource(shareText: text, shareImage: photo) let activityItems: [Any] = [photo, text, itemSource] let controller = UIActivityViewController( activityItems: activityItems, applicationActivities: nil) return controller } func updateUIViewController(_ vc: UIActivityViewController, context: Context) { } } struct ImageOnlyShareSheet: UIViewControllerRepresentable { let photo: UIImage func makeUIViewController(context: Context) -> UIActivityViewController { let controller = UIActivityViewController( activityItems: [photo], applicationActivities: nil) return controller } func updateUIViewController(_ vc: UIActivityViewController, context: Context) { } }