From 3ee813ea0a5724abb61e86a4a7fd4ff3ceb036fa Mon Sep 17 00:00:00 2001 From: David Moeller Date: Wed, 13 Aug 2025 09:04:14 +0200 Subject: [PATCH] Add Available Permissions --- Sources/SharingGRDBCore/CloudKit/CloudKitSharing.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Sources/SharingGRDBCore/CloudKit/CloudKitSharing.swift b/Sources/SharingGRDBCore/CloudKit/CloudKitSharing.swift index f5d3736e..20442f21 100644 --- a/Sources/SharingGRDBCore/CloudKit/CloudKitSharing.swift +++ b/Sources/SharingGRDBCore/CloudKit/CloudKitSharing.swift @@ -151,19 +151,22 @@ extension SyncEngine { @available(iOS 17, macOS 14, tvOS 17, *) public struct CloudSharingView: UIViewControllerRepresentable { let sharedRecord: SharedRecord + let availablePermissions: UICloudSharingController.PermissionOptions let didFinish: (Result) -> Void let didStopSharing: () -> Void - public init(sharedRecord: SharedRecord) { - self.init(sharedRecord: sharedRecord, didFinish: { _ in }, didStopSharing: {}) + public init(sharedRecord: SharedRecord, availablePermissions: UICloudSharingController.PermissionOptions = []) { + self.init(sharedRecord: sharedRecord, availablePermissions: availablePermissions, didFinish: { _ in }, didStopSharing: {}) } public init( sharedRecord: SharedRecord, + availablePermissions: UICloudSharingController.PermissionOptions = [], didFinish: @escaping (Result) -> Void, didStopSharing: @escaping () -> Void ) { self.sharedRecord = sharedRecord self.didFinish = didFinish self.didStopSharing = didStopSharing + self.availablePermissions = availablePermissions } public func makeCoordinator() -> CloudSharingDelegate { @@ -180,6 +183,7 @@ extension SyncEngine { container: sharedRecord.container.rawValue ) controller.delegate = context.coordinator + controller.availablePermissions = availablePermissions return controller }