diff options
author | Shav Kinderlehrer <[email protected]> | 2024-01-08 12:57:25 -0500 |
---|---|---|
committer | Shav Kinderlehrer <[email protected]> | 2024-01-08 12:57:25 -0500 |
commit | 6d32db67511ca83312d3f8dcd971e48b9b59c9e9 (patch) | |
tree | f869957a11328a4412c45bee40d8ad283f0c06f5 /Jel/Views/Library | |
parent | ca47292e3d2ebb5024c8c9ebbe8211f2779a4a81 (diff) | |
download | jel-6d32db67511ca83312d3f8dcd971e48b9b59c9e9.tar.gz jel-6d32db67511ca83312d3f8dcd971e48b9b59c9e9.zip |
Update itemView
Diffstat (limited to 'Jel/Views/Library')
-rw-r--r-- | Jel/Views/Library/Item/ItemHeaderView.swift | 19 | ||||
-rw-r--r-- | Jel/Views/Library/Item/ItemInfoView.swift | 21 | ||||
-rw-r--r-- | Jel/Views/Library/Item/ItemPeopleView.swift | 27 | ||||
-rw-r--r-- | Jel/Views/Library/Item/Types/ItemMovieView.swift | 6 | ||||
-rw-r--r-- | Jel/Views/Library/LibraryDetailView.swift | 3 |
5 files changed, 57 insertions, 19 deletions
diff --git a/Jel/Views/Library/Item/ItemHeaderView.swift b/Jel/Views/Library/Item/ItemHeaderView.swift index 3b5769a..afcc21e 100644 --- a/Jel/Views/Library/Item/ItemHeaderView.swift +++ b/Jel/Views/Library/Item/ItemHeaderView.swift @@ -11,11 +11,13 @@ import JellyfinKit struct ItemHeaderView: View { var item: BaseItemDto - let overlayGradient = LinearGradient(gradient: Gradient(stops: [ + let overlayGradientMask = LinearGradient(gradient: Gradient(stops: [ .init(color: .clear, location: 0), - .init(color: .black, location: 0.5), - // .init(color: .black, location: 0.7), - // .init(color: .clear, location: 1) + .init(color: .black, location: 0.3), + ]), startPoint: .bottom, endPoint: .top) + let overlayGradient = LinearGradient(gradient: Gradient(stops: [ + .init(color: .black, location: 0), + .init(color: .clear, location: 0.5) ]), startPoint: .bottom, endPoint: .top) var body: some View { @@ -23,12 +25,8 @@ struct ItemHeaderView: View { StickyHeaderView(minHeight: 300) { ItemIconView(item: item, imageType: "Backdrop", contentMode: .fill) .setCornerRadius(0) - .mask(overlayGradient) - .background { - ItemIconView(item: item, imageType: "Backdrop", contentMode: .fill) - .setCornerRadius(0) - .blur(radius: 50) - } + .overlay(overlayGradient.opacity(0.8)) + .mask(overlayGradientMask) } HStack { @@ -38,7 +36,6 @@ struct ItemHeaderView: View { .frame(alignment: .leading) Spacer() ItemInfoView(item: item) - .foregroundStyle(.white) } .padding([.leading, .trailing]) } diff --git a/Jel/Views/Library/Item/ItemInfoView.swift b/Jel/Views/Library/Item/ItemInfoView.swift index 0e1ce11..bafbc9f 100644 --- a/Jel/Views/Library/Item/ItemInfoView.swift +++ b/Jel/Views/Library/Item/ItemInfoView.swift @@ -15,15 +15,24 @@ struct ItemInfoView: View { VStack(alignment: .leading) { HStack { Text((item.productionYear != nil) ? String(item.productionYear!) : "---") - .shadow(color: .black, radius: 1) Text("•") - .shadow(color: .black, radius: 1) Text(item.genres?.first ?? "---") - .shadow(color: .black, radius: 1) } - if item.type == .movie { - Text(item.getRuntime() ?? "-:--") - .shadow(color: .black, radius: 1) + + HStack { + if item.type == .movie { + Text(item.getRuntime() ?? "-:--") + } + if let officialRating = item.officialRating { + Text(officialRating) + .bold() + .padding(2) + .overlay { + RoundedRectangle(cornerSize: CGSize(width: 2, height: 2), style: .continuous) + .stroke(.gray) + } + .foregroundStyle(.gray) + } } } .font(.caption) diff --git a/Jel/Views/Library/Item/ItemPeopleView.swift b/Jel/Views/Library/Item/ItemPeopleView.swift new file mode 100644 index 0000000..b8b0846 --- /dev/null +++ b/Jel/Views/Library/Item/ItemPeopleView.swift @@ -0,0 +1,27 @@ +// +// ItemPeopleView.swift +// Jel +// +// Created by zerocool on 1/8/24. +// + +import SwiftUI +import JellyfinKit + +struct ItemPeopleView: View { + var item: BaseItemDto + + var body: some View { + ScrollView(.horizontal) { + HStack { + ForEach(item.people ?? []) {person in + Text(person.name ?? "---") + } + } + } + } +} + +//#Preview { +// ItemPeopleView() +//} diff --git a/Jel/Views/Library/Item/Types/ItemMovieView.swift b/Jel/Views/Library/Item/Types/ItemMovieView.swift index 5a9100b..b621d2e 100644 --- a/Jel/Views/Library/Item/Types/ItemMovieView.swift +++ b/Jel/Views/Library/Item/Types/ItemMovieView.swift @@ -9,7 +9,8 @@ import SwiftUI import JellyfinKit struct ItemMovieView: View { - @State var item: BaseItemDto + var item: BaseItemDto + var body: some View { VStack { ItemMediaView(item: item) { @@ -18,7 +19,10 @@ struct ItemMovieView: View { } .buttonStyle(.borderedProminent) } + + ItemPeopleView(item: item) } + .padding() } } diff --git a/Jel/Views/Library/LibraryDetailView.swift b/Jel/Views/Library/LibraryDetailView.swift index 8c74140..c85651d 100644 --- a/Jel/Views/Library/LibraryDetailView.swift +++ b/Jel/Views/Library/LibraryDetailView.swift @@ -88,7 +88,8 @@ struct LibraryDetailView: View { .genres, .taglines, .overview, - .parentID] + .parentID, + .people] ) let request = Paths.getItems(parameters: params) |