mirror of
https://github.com/lumaa-dev/BubbleApp.git
synced 2025-02-02 11:37:05 +01:00
Richer share sheet
This commit is contained in:
parent
995a134c0d
commit
b1d6487d64
@ -3,15 +3,42 @@
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
import UIKit
|
||||
import LinkPresentation
|
||||
|
||||
/// Share sheet
|
||||
struct ShareSheet: UIViewControllerRepresentable {
|
||||
let image: UIImage
|
||||
let status: Status
|
||||
|
||||
class ActivityPreview: NSObject, UIActivityItemSource {
|
||||
let image: UIImage
|
||||
let status: Status
|
||||
|
||||
init(image: UIImage, status: Status) {
|
||||
self.image = image
|
||||
self.status = status
|
||||
}
|
||||
|
||||
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
|
||||
image
|
||||
}
|
||||
|
||||
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
|
||||
nil
|
||||
}
|
||||
|
||||
func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? {
|
||||
let metadata = LPLinkMetadata()
|
||||
metadata.imageProvider = NSItemProvider(object: image)
|
||||
metadata.title = status.reblogAsAsStatus?.content.asRawText ?? status.content.asRawText + String("\n\n\(status.url ?? AppInfo.website)")
|
||||
return metadata
|
||||
}
|
||||
}
|
||||
|
||||
func makeUIViewController(context: Context) -> UIActivityViewController {
|
||||
UIActivityViewController(activityItems: [image], applicationActivities: nil)
|
||||
|
||||
UIActivityViewController(activityItems: [image, ActivityPreview(image: image, status: status)], applicationActivities: nil)
|
||||
}
|
||||
|
||||
func updateUIViewController(_ uiViewController: UIActivityViewController, context: Context) {
|
||||
}
|
||||
func updateUIViewController(_ uiViewController: UIActivityViewController, context: Context) {}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user