summaryrefslogtreecommitdiff
path: root/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift
diff options
context:
space:
mode:
authorShav Kinderlehrer <[email protected]>2024-02-27 14:22:42 -0500
committerShav Kinderlehrer <[email protected]>2024-02-27 14:22:42 -0500
commitaaf02071642a59ae375906bd9b9bcff1e8c33e92 (patch)
tree9084cdf9cab4054a6e3108b2f3db50a9343bd874 /Jel/Views/Item/Series/ItemSeriesEpisodesView.swift
parentbe11eed89ded59949a790aa09f20908779155443 (diff)
downloadjel-aaf02071642a59ae375906bd9b9bcff1e8c33e92.tar.gz
jel-aaf02071642a59ae375906bd9b9bcff1e8c33e92.zip
Implement ItemSeriesSelectableEpisodesViewHEADmain
Diffstat (limited to 'Jel/Views/Item/Series/ItemSeriesEpisodesView.swift')
-rw-r--r--Jel/Views/Item/Series/ItemSeriesEpisodesView.swift42
1 files changed, 26 insertions, 16 deletions
diff --git a/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift b/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift
index 338f8a7..f0d95cf 100644
--- a/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift
+++ b/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift
@@ -10,36 +10,46 @@ import JellyfinKit
struct ItemSeriesEpisodesView: View {
@EnvironmentObject var jellyfinClient: JellyfinClientController
- @EnvironmentObject var size: ScreenSize
-
@ObservedObject var authState: AuthStateController = AuthStateController.shared
var item: BaseItemDto
@State var episodeItems: [BaseItemDto] = []
+ @State var loading: Bool = true
var body: some View {
- VStack(alignment: .leading) {
+ LazyVStack(alignment: .leading) {
ForEach(episodeItems) {episode in
ItemSeriesEpisodeIconView(item: episode)
}
}
+ .if(loading) {view in
+ view
+ .redacted(reason: .placeholder)
+ }
+ .onChange(of: item) {
+ self.loadEpisodes()
+ }
.onAppear {
- 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 ?? []
- } catch {}
- }
+ 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()