Add "createMode" toggle to share options view, start building for use to create new...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 6 Mar 2024 12:08:06 +0000 (20:08 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 17 Apr 2024 08:38:58 +0000 (16:38 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/ShareOptionsView.swift

index a9fac05e6675cbccb2b8f59fbe71ea52f59c80d5..9e74b22bce31498e2bb163d025ffa4e3d6fa1ac1 100644 (file)
@@ -25,12 +25,26 @@ class ShareOptionsView: NSView {
     var dataSource: ShareTableViewDataSource?
     var controller: ShareController? {
         didSet {
+            guard controller != nil else { return }
             cancellable?.cancel()
             createMode = false
             update()
             cancellable = controller.publisher.sink { _ in self.update() }
         }
     }
+    var createMode = false {
+        didSet {
+            Logger.shareOptionsView.info("Create mode set: \(self.createMode)")
+            shareTypePicker.isHidden = !createMode
+            labelTextField.isHidden = createMode  // Cannot set label on create API call
+            guard createMode else { return }
+            cancellable?.cancel()
+            cancellable = nil
+            controller = nil
+            reset()
+            setAllFields(enabled: true)
+        }
+    }
     private var cancellable: AnyCancellable?
 
     private func update() {