Skip to content

Commit 9cbf6ff

Browse files
jkmasseloguzkocer
authored andcommitted
Add Swift support
1 parent 9ca5566 commit 9cbf6ff

File tree

5 files changed

+37
-3
lines changed

5 files changed

+37
-3
lines changed

native/swift/Example/Example/ExampleApp.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,25 +164,31 @@ struct ExampleApp: App {
164164
.map(\.value.asListViewData)
165165
}, category: .posts))
166166

167+
baseData.append(RootListData(name: "Navigations", callback: {
168+
try await WordPressAPI.globalInstance.navigations.listWithEditContext(params: NavigationListParams())
169+
.data
170+
.map(\.asListViewData)
171+
}, category: .navigation))
172+
167173
baseData.append(RootListData(name: "Menus", callback: {
168174
try await WordPressAPI.globalInstance.navMenus.listWithEditContext(params: NavMenuListParams())
169175
.data
170176
.map(\.asListViewData)
171-
}, category: .system))
177+
}, category: .navigation))
172178

173179
baseData.append(RootListData(name: "Menu Items", sequence: {
174180
let sequence = try await WordPressAPI.globalInstance.navMenuItems
175181
.sequenceWithEditContext(params: NavMenuItemListParams())
176182

177183
return ListViewSequence(underlyingSequence: sequence)
178-
}, category: .system))
184+
}, category: .navigation))
179185

180186
baseData.append(RootListData(name: "Menu Locations", callback: {
181187
try await WordPressAPI.globalInstance.menuLocations.listWithEditContext()
182188
.data
183189
.locations
184190
.map(\.value.asListViewData)
185-
}, category: .system))
191+
}, category: .navigation))
186192

187193
return baseData
188194
}

native/swift/Example/Example/ListViewData.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,17 @@ extension PostStatusWithEditContext: ListViewDataConvertable {
183183
}
184184
}
185185

186+
extension NavigationWithEditContext: ListViewDataConvertable {
187+
var asListViewData: ListViewData {
188+
let title = switch self.title {
189+
case .object(let title): title.rendered
190+
case .string(let string): string
191+
}
192+
193+
return ListViewData(id: self.id.description, title: title ?? "Unknown", subtitle: self.slug, fields: [:])
194+
}
195+
}
196+
186197
extension NavMenuWithEditContext: ListViewDataConvertable {
187198
var asListViewData: ListViewData {
188199
ListViewData(id: self.id.description, title: self.name, subtitle: self.slug, fields: [:])

native/swift/Example/Example/UI/RootListView.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ enum RootListData: Identifiable, Sendable {
5555
enum Category: Hashable, Identifiable, CaseIterable {
5656
case posts
5757
case taxonomies
58+
case navigation
5859
case system
5960

6061
var id: String {
@@ -65,6 +66,7 @@ enum RootListData: Identifiable, Sendable {
6566
return switch self {
6667
case .posts: "Posts"
6768
case .taxonomies: "Taxonomies"
69+
case .navigation: "Navigation"
6870
case .system: "System"
6971
}
7072
}

native/swift/Sources/wordpress-api/Exports.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,17 @@ public typealias TermsRequestListWithEmbedContextResponse = WordPressAPIInternal
194194
// MARK: - Taxonomies
195195
public typealias TaxonomyListParams = WordPressAPIInternal.TaxonomyListParams
196196

197+
// MARK: Navigation
198+
public typealias NavigationStatus = WordPressAPIInternal.NavigationStatus
199+
public typealias NavigationListParams = WordPressAPIInternal.NavigationListParams
200+
public typealias NavigationCreateParams = WordPressAPIInternal.NavigationCreateParams
201+
public typealias NavigationUpdateParams = WordPressAPIInternal.NavigationUpdateParams
202+
public typealias NavigationRetrieveParams = WordPressAPIInternal.NavigationRetrieveParams
203+
public typealias NavigationRequestExecutor = WordPressAPIInternal.NavigationsRequestExecutor
204+
public typealias NavigationWithEditContext = WordPressAPIInternal.NavigationWithEditContext
205+
public typealias NavigationWithViewContext = WordPressAPIInternal.NavigationWithViewContext
206+
public typealias NavigationWithEmbedContext = WordPressAPIInternal.NavigationWithEmbedContext
207+
197208
// MARK: - Menus
198209
public typealias SparseNavMenu = WordPressAPIInternal.SparseNavMenu
199210
public typealias NavMenuListParams = WordPressAPIInternal.NavMenuListParams

native/swift/Sources/wordpress-api/WordPressAPI.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ public actor WordPressAPI {
153153
self.requestBuilder.wpBlockEditor()
154154
}
155155

156+
public var navigations: NavigationRequestExecutor {
157+
self.requestBuilder.navigations()
158+
}
159+
156160
public var navMenus: NavMenusRequestExecutor {
157161
self.requestBuilder.navMenus()
158162
}

0 commit comments

Comments
 (0)