Skip to content

Commit 3e40357

Browse files
add orientation specific timeout handling (#229)
1 parent 3534c32 commit 3e40357

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

Sources/SnapshotPreviewsCore/UIKitRenderingStrategy.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,12 @@ public class UIKitRenderingStrategy: RenderingStrategy {
6363
completion: @escaping (SnapshotResult) -> Void
6464
) {
6565
if let geometryUpdateError {
66+
if (geometryUpdateError as NSError).userInfo["BSErrorCodeDescription"] as? String == "timeout" {
67+
completion(SnapshotResult(image: .failure(RenderingError.orientationChangeTimeout), precision: nil, accessibilityEnabled: nil, accessibilityMarkers: nil, colorScheme: nil, appStoreSnapshot: nil))
68+
return
69+
}
6670
completion(SnapshotResult(image: .failure(geometryUpdateError), precision: nil, accessibilityEnabled: nil, accessibilityMarkers: nil, colorScheme: nil, appStoreSnapshot: nil))
67-
return
71+
return
6872
}
6973
guard attempts > 0 else {
7074
let timeoutError = NSError(domain: "OrientationChangeTimeout", code: 0, userInfo: [NSLocalizedDescriptionKey: "Orientation change timed out"])

Sources/SnapshotPreviewsCore/View+Snapshot.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public enum RenderingError: Error {
1111
case failedRendering(CGSize)
1212
case maxSize(CGSize)
1313
case expandingViewTimeout(CGSize)
14+
case orientationChangeTimeout
1415
}
1516

1617
#if canImport(UIKit) && !os(visionOS) && !os(watchOS) && !os(tvOS)

0 commit comments

Comments
 (0)