]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Add typeImage property to NKShare extension
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 28 Feb 2024 08:00:11 +0000 (16:00 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 17 Apr 2024 08:38:50 +0000 (16:38 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Extensions/NKShare+Extensions.swift

index f1020fe98e6092f63af49b0936a59354252bb3f2..0ffeb7323aaaaf592066bed05d3bac2e6efec69b 100644 (file)
@@ -5,6 +5,7 @@
 //  Created by Claudio Cambra on 28/2/24.
 //
 
+import AppKit
 import NextcloudKit
 
 extension NKShare {
@@ -17,4 +18,55 @@ extension NKShare {
         case circle = 7
         case talkConversation = 10
     }
+
+    var typeImage: NSImage? {
+        var image: NSImage?
+        switch shareType {
+        case ShareType.user.rawValue:
+            image = NSImage(
+                systemSymbolName: "person.circle.fill", 
+                accessibilityDescription: "User share icon"
+            )
+        case ShareType.group.rawValue:
+            image = NSImage(
+                systemSymbolName: "person.2.circle.fill",
+                accessibilityDescription: "Group share icon"
+            )
+        case ShareType.publicLink.rawValue:
+            image = NSImage(
+                systemSymbolName: "link.circle.fill",
+                accessibilityDescription: "Public link share icon"
+            )
+        case ShareType.email.rawValue:
+            image = NSImage(
+                systemSymbolName: "envelope.circle.fill",
+                accessibilityDescription: "Email share icon"
+            )
+        case ShareType.federatedCloud.rawValue:
+            image = NSImage(
+                systemSymbolName: "cloud.circle.fill",
+                accessibilityDescription: "Federated cloud share icon"
+            )
+        case ShareType.circle.rawValue:
+            image = NSImage(
+                systemSymbolName: "circle.circle.fill",
+                accessibilityDescription: "Circle share icon"
+            )
+        case ShareType.talkConversation.rawValue:
+            image = NSImage(
+                systemSymbolName: "message.circle.fill",
+                accessibilityDescription: "Talk conversation share icon"
+            )
+        default:
+            return nil
+        }
+
+        var config = NSImage.SymbolConfiguration(textStyle: .body, scale: .large)
+        if #available(macOS 12.0, *) {
+            config = config.applying(
+                .init(paletteColors: [.controlBackgroundColor, .controlAccentColor])
+            )
+        }
+        return image?.withSymbolConfiguration(config)
+    }
 }