From 6b8d3372d21149ed0efb4d43bf0cab44bd24f9a4 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Thu, 11 Jan 2024 20:44:49 -0500 Subject: Implement peopleView --- Jel/Views/Library/Item/Person/ItemPeopleView.swift | 37 ------------ .../Library/Item/Person/ItemPersonIconView.swift | 70 ---------------------- 2 files changed, 107 deletions(-) delete mode 100644 Jel/Views/Library/Item/Person/ItemPeopleView.swift delete mode 100644 Jel/Views/Library/Item/Person/ItemPersonIconView.swift (limited to 'Jel/Views/Library/Item/Person') diff --git a/Jel/Views/Library/Item/Person/ItemPeopleView.swift b/Jel/Views/Library/Item/Person/ItemPeopleView.swift deleted file mode 100644 index 6e2a974..0000000 --- a/Jel/Views/Library/Item/Person/ItemPeopleView.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// ItemPeopleView.swift -// Jel -// -// Created by zerocool on 1/8/24. -// - -import SwiftUI -import JellyfinKit -import NukeUI - -struct ItemPeopleView: View { - - var item: BaseItemDto - - var body: some View { - VStack(alignment: .leading) { - Text("Cast and Crew") - .font(.title2) - .padding(.leading) - - ScrollView(.horizontal) { - LazyHStack(alignment: .top) { - ForEach(item.people ?? [], id: \.iterId) {person in - ItemPersonIconView(person: person) - } - } - .padding(.horizontal) - } - .scrollIndicators(.hidden) - } - } -} - -//#Preview { -// ItemPeopleView() -//} diff --git a/Jel/Views/Library/Item/Person/ItemPersonIconView.swift b/Jel/Views/Library/Item/Person/ItemPersonIconView.swift deleted file mode 100644 index a6e5161..0000000 --- a/Jel/Views/Library/Item/Person/ItemPersonIconView.swift +++ /dev/null @@ -1,70 +0,0 @@ -// -// ItemPersonIconView.swift -// Jel -// -// Created by zerocool on 1/8/24. -// - -import SwiftUI -import JellyfinKit -import NukeUI - -struct ItemPersonIconPlaceholderView: View { - var body: some View { - VStack { - Image(systemName: "person") - .resizable() - .padding() - .scaledToFit() - } - } -} - -struct ItemPersonIconView: View { - @StateObject var authState: AuthStateController = AuthStateController.shared - @EnvironmentObject var jellyfinClient: JellyfinClientController - - var person: BaseItemPerson - - @State var personImageUrl: URL? - @State var loading: Bool = true - - var body: some View { - VStack() { - LazyImage(url: personImageUrl) {state in - if let image = state.image { - image - .resizable() - .clipShape(RoundedRectangle(cornerRadius: 5)) - } else { - ItemPersonIconPlaceholderView() - } - } - .aspectRatio(contentMode: .fit) - .frame(width: 100, height: 170) - - VStack { - Text(person.name ?? "---") - .font(.callout) - Text(person.role ?? "---") - .font(.caption) - .foregroundStyle(.gray) - } - .frame(width: 100) - } - // .redacted(reason: loading ? .placeholder : []) - .onAppear { - Task { - let request = Paths.getItemImage(itemID: person.id ?? "", imageType: "Primary") - - let serverUrl = jellyfinClient.getUrl() - personImageUrl = serverUrl?.appending(path: request.url?.absoluteString ?? "") - // loading = false - } - } - } -} - -//#Preview { -// ItemPersonView() -//} -- cgit v1.2.3