@@ -127,6 +127,7 @@ public extension NextcloudKit {
127127 let assistant : Assistant ?
128128 let recommendations : Recommendations ?
129129 let termsOfService : TermsOfService ?
130+ let declarativeUI : DeclarativeUI ?
130131
131132 enum CodingKeys : String , CodingKey {
132133 case downloadLimit = " downloadlimit "
@@ -140,6 +141,7 @@ public extension NextcloudKit {
140141 case assistant
141142 case recommendations
142143 case termsOfService = " terms_of_service "
144+ case declarativeUI = " declarativeui "
143145 }
144146
145147 struct DownloadLimit : Codable {
@@ -329,6 +331,32 @@ public extension NextcloudKit {
329331 struct Recommendations : Codable {
330332 let enabled : Bool ?
331333 }
334+
335+ // struct DeclarativeUI: Codable {
336+ // let contextMenu: [[ContextMenuItem]]
337+ //
338+ // enum CodingKeys: String, CodingKey {
339+ // case contextMenu = "context-menu"
340+ // }
341+ // }
342+
343+ //
344+ // struct DeclarativeUI: Codable {
345+ // let contextMenus: [ContextMenu]
346+ //
347+ // enum CodingKeys: String, CodingKey {
348+ // case contextMenus = "context-menu"
349+ // }
350+ //
351+ // struct ContextMenu: Codable {
352+ // let items
353+ // }
354+ //
355+ // struct ContextMenuItem: Codable {
356+ // let title: String
357+ // let endpoint: String
358+ // }
359+ // }
332360 }
333361 }
334362 }
@@ -346,6 +374,8 @@ public extension NextcloudKit {
346374 let data = decoded. ocs. data
347375 let json = data. capabilities
348376
377+ print ( json)
378+
349379 // Initialize capabilities
350380 let capabilities = NKCapabilities . Capabilities ( )
351381
@@ -409,6 +439,9 @@ public extension NextcloudKit {
409439 capabilities. recommendations = json. recommendations? . enabled ?? false
410440 capabilities. termsOfService = json. termsOfService? . enabled ?? false
411441
442+ // capabilities.declarativeUIEnabled = !(json.declarativeUI?.contextMenu.isEmpty ?? false)
443+ // capabilities.declarativeUIContextMenu = json.declarativeUI?.contextMenu ?? []
444+ capabilities. declarativeUI = json. declarativeUI
412445 // Persist capabilities in shared store
413446 await NKCapabilities . shared. setCapabilities ( for: account, capabilities: capabilities)
414447 return capabilities
@@ -484,7 +517,9 @@ final public class NKCapabilities: Sendable {
484517 public var forbiddenFileNameExtensions : [ String ] = [ ]
485518 public var recommendations : Bool = false
486519 public var termsOfService : Bool = false
487-
520+ // public var declarativeUIEnabled: Bool = false
521+ // public var declarativeUIContextMenu: [ContextMenuItem] = []
522+ public var declarativeUI : DeclarativeUI ? = nil
488523 public var directEditingEditors : [ NKEditorDetailsEditor ] = [ ]
489524 public var directEditingCreators : [ NKEditorDetailsCreator ] = [ ]
490525 public var directEditingTemplates : [ NKEditorTemplate ] = [ ]
0 commit comments