// // ItemGenresView.swift // Jel // // Created by zerocool on 1/7/24. // import SwiftUI import JellyfinKit struct ItemGenresView: View { @EnvironmentObject var jellyfinClient: JellyfinClientController @StateObject var authState: AuthStateController = AuthStateController.shared var item: BaseItemDto @State var library: BaseItemDto = BaseItemDto() var body: some View { VStack(alignment: .leading) { Text("Genres") .font(.title2) ScrollView(.horizontal) { HStack { ForEach(item.genres ?? [], id: \.self) {genre in NavigationLink { LibraryDetailView(library: library) {items in var matchingItems: [BaseItemDto] = [] for item in items { if (item.genres ?? []).contains(genre) { matchingItems.append(item) } } return matchingItems } .navigationTitle(genre) } label: { Text(genre) } .buttonStyle(.bordered) .clipShape(.capsule) } } } } .onAppear { Task { let request = Paths.getItem(userID: authState.userId ?? "", itemID: item.parentID ?? "") do { let res = try await jellyfinClient.send(request) library = res.value } catch { } } } } } //#Preview { // ItemGenresView() //}