diff --git a/ShareExtension/ShareViewController.swift b/ShareExtension/ShareViewController.swift index 4bbecdcb..92dc26cb 100644 --- a/ShareExtension/ShareViewController.swift +++ b/ShareExtension/ShareViewController.swift @@ -84,12 +84,23 @@ class ShareViewController: UIViewController { } } else if let text: NSString = await getObject(from: itemProvider) { return ("\n\n\(text)", []) - } else if let attachment: DraftAttachment = await getObject(from: itemProvider) { - return ("", [attachment]) } else if let attributedContent = inputItem.attributedContentText { return ("\n\n\(attributedContent.string)", []) } else { - return ("", []) + let attachments = await withTaskGroup(of: DraftAttachment?.self, returning: [DraftAttachment].self) { group in + for provider in inputItem.attachments! { + group.addTask { @MainActor in + await self.getObject(from: provider) + } + } + + return await group.reduce(into: [], { partialResult, result in + if let result { + partialResult.append(result) + } + }) + } + return ("", attachments) } }