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 | |
parent | ca47292e3d2ebb5024c8c9ebbe8211f2779a4a81 (diff) | |
download | jel-6d32db67511ca83312d3f8dcd971e48b9b59c9e9.tar.gz jel-6d32db67511ca83312d3f8dcd971e48b9b59c9e9.zip |
Update itemView
Diffstat (limited to 'Jel/Views')
-rw-r--r-- | Jel/Views/ContentView.swift | 16 | ||||
-rw-r--r-- | Jel/Views/Dashboard/DashboardLibraryView.swift | 1 | ||||
-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 | ||||
-rw-r--r-- | Jel/Views/Settings/AppearancePicker.swift | 25 | ||||
-rw-r--r-- | Jel/Views/Settings/SettingsView.swift | 16 |
9 files changed, 61 insertions, 73 deletions
diff --git a/Jel/Views/ContentView.swift b/Jel/Views/ContentView.swift index 700f2a2..6c5ec59 100644 --- a/Jel/Views/ContentView.swift +++ b/Jel/Views/ContentView.swift @@ -25,19 +25,9 @@ struct ContentView: View { } } } - .preferredColorScheme({ - switch settingsController.appearance { - case .dark: - return ColorScheme.dark - case .light: - return ColorScheme.light - case .automatic: - return .none - } - }()) } } -#Preview { - ContentView() -} +//#Preview { +// ContentView() +//} diff --git a/Jel/Views/Dashboard/DashboardLibraryView.swift b/Jel/Views/Dashboard/DashboardLibraryView.swift index 19f7bf3..b2a8449 100644 --- a/Jel/Views/Dashboard/DashboardLibraryView.swift +++ b/Jel/Views/Dashboard/DashboardLibraryView.swift @@ -33,6 +33,7 @@ struct DashboardLibraryView: View { } label: { ItemIconView(item: library, height: 150) .setAspectRatio(library.primaryImageAspectRatio) + .showCaption() } .buttonStyle(PlainButtonStyle()) } 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) diff --git a/Jel/Views/Settings/AppearancePicker.swift b/Jel/Views/Settings/AppearancePicker.swift deleted file mode 100644 index 93edead..0000000 --- a/Jel/Views/Settings/AppearancePicker.swift +++ /dev/null @@ -1,25 +0,0 @@ -// -// AppearancePicker.swift -// Jel -// -// Created by zerocool on 12/15/23. -// - -import SwiftUI - -struct AppearancePicker: View { - @ObservedObject var settingsController: SettingsController = SettingsController.shared - - var body: some View { - Picker("Appearance", selection: $settingsController.appearance) { - ForEach(AppearanceState.allCases) { option in - Text(String(describing: option)) - } - } - .pickerStyle(.menu) - } -} - -#Preview { - AppearancePicker() -} diff --git a/Jel/Views/Settings/SettingsView.swift b/Jel/Views/Settings/SettingsView.swift index 174573d..cff1fc3 100644 --- a/Jel/Views/Settings/SettingsView.swift +++ b/Jel/Views/Settings/SettingsView.swift @@ -44,12 +44,6 @@ struct SettingsView: View { } Section() { - AppearancePicker() - } header: { - Text("Accessibility") - } - - Section() { NavigationLink { ConsoleView() .closeButtonHidden() @@ -72,16 +66,6 @@ struct SettingsView: View { } } } - .preferredColorScheme({ - switch settingsController.appearance { - case .dark: - return ColorScheme.dark - case .light: - return ColorScheme.light - case .automatic: - return .none - } - }()) } } } |