diff --git a/ElementX/Sources/Screens/MediaPickerScreen/DocumentPicker.swift b/ElementX/Sources/Screens/MediaPickerScreen/DocumentPicker.swift index 28287d8f1..972522b45 100644 --- a/ElementX/Sources/Screens/MediaPickerScreen/DocumentPicker.swift +++ b/ElementX/Sources/Screens/MediaPickerScreen/DocumentPicker.swift @@ -90,6 +90,11 @@ struct DocumentPicker: UIViewControllerRepresentable { } } + guard !selectedURLs.isEmpty else { + // Every picked document failed to copy; each failure was already surfaced via .error. + return + } + documentPicker.callback(.selectedMediaAtURLs(selectedURLs)) } } diff --git a/ElementX/Sources/Screens/MediaPickerScreen/PhotoLibraryPicker.swift b/ElementX/Sources/Screens/MediaPickerScreen/PhotoLibraryPicker.swift index 9f3931bb3..96e32afd1 100644 --- a/ElementX/Sources/Screens/MediaPickerScreen/PhotoLibraryPicker.swift +++ b/ElementX/Sources/Screens/MediaPickerScreen/PhotoLibraryPicker.swift @@ -104,6 +104,11 @@ struct PhotoLibraryPicker: UIViewControllerRepresentable { return selectedURLs.compactMap { $0 } } + guard !selectedURLs.isEmpty else { + // Every selected item failed to load; each failure was already surfaced via .error. + return + } + photoLibraryPicker.callback(.selectedMediaAtURLs(selectedURLs)) } } @@ -114,6 +119,9 @@ struct PhotoLibraryPicker: UIViewControllerRepresentable { let provider = result.itemProvider guard let contentType = provider.preferredContentType else { + Task { @MainActor in + photoLibraryPicker.callback(.error(.failedLoadingFileRepresentation(nil))) + } return nil }