// // ItemSeriesEpisodesView.swift // Jel // // Created by zerocool on 2/14/24. // import SwiftUI import JellyfinKit struct ItemSeriesEpisodesView: View { @EnvironmentObject var jellyfinClient: JellyfinClientController @ObservedObject var authState: AuthStateController = AuthStateController.shared var item: BaseItemDto @State var episodeItems: [BaseItemDto] = [] @State var loading: Bool = true var body: some View { LazyVStack(alignment: .leading) { ForEach(episodeItems) {episode in ItemSeriesEpisodeIconView(item: episode) } } .if(loading) {view in view .redacted(reason: .placeholder) } .onChange(of: item) { self.loadEpisodes() } .onAppear { self.loadEpisodes() } } func loadEpisodes() { Task { let parameters = Paths.GetItemsParameters( userID: authState.userId, parentID: item.id ?? "" ) let req = Paths.getItems(parameters: parameters) do { let res = try await jellyfinClient.send(req) episodeItems = res.value.items ?? [] loading = false } catch {} } }} //#Preview { // ItemSeriesEpisodesView() //}