From 2619848a70d1c1cf366a288dcb889103b7464f1c Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Wed, 21 Feb 2024 14:45:48 -0500 Subject: Finish ItemSeriesEpisodeIconView + make geo size globally available --- Jel/Views/Dashboard/DashboardView.swift | 28 +++++++--------- .../Item/Series/ItemSeriesEpisodeIconView.swift | 39 +++++++++++++--------- Jel/Views/Item/Series/ItemSeriesEpisodesView.swift | 2 +- Jel/Views/Utility/StickyHeaderView.swift | 3 +- 4 files changed, 37 insertions(+), 35 deletions(-) (limited to 'Jel/Views') diff --git a/Jel/Views/Dashboard/DashboardView.swift b/Jel/Views/Dashboard/DashboardView.swift index 931a884..508d002 100644 --- a/Jel/Views/Dashboard/DashboardView.swift +++ b/Jel/Views/Dashboard/DashboardView.swift @@ -10,8 +10,7 @@ import JellyfinKit struct DashboardView: View { @State var showingSettingsSheet: Bool = false - @ObservedObject var authState: AuthStateController = AuthStateController.shared - @State var refresh: Bool = true + var body: some View { ScrollView { @@ -25,23 +24,20 @@ struct DashboardView: View { .padding([.top, .leading]) } } - } - .navigationTitle("Home") - .toolbar { - ToolbarItem(placement: .topBarTrailing) { - Button { - showingSettingsSheet.toggle() - } label: { - Label("Settings", systemImage: "gear") + .navigationTitle("Home") + .toolbar { + ToolbarItem(placement: .topBarTrailing) { + Button { + showingSettingsSheet.toggle() + } label: { + Label("Settings", systemImage: "gear") + } } } + .sheet(isPresented: $showingSettingsSheet) { + SettingsView(showingSettingsView: $showingSettingsSheet) + } } - .sheet(isPresented: $showingSettingsSheet) { - SettingsView(showingSettingsView: $showingSettingsSheet) - } - .onChange(of: authState.loggedIn, { - refresh = !authState.loggedIn - }) } } diff --git a/Jel/Views/Item/Series/ItemSeriesEpisodeIconView.swift b/Jel/Views/Item/Series/ItemSeriesEpisodeIconView.swift index fea8997..9217bea 100644 --- a/Jel/Views/Item/Series/ItemSeriesEpisodeIconView.swift +++ b/Jel/Views/Item/Series/ItemSeriesEpisodeIconView.swift @@ -12,23 +12,30 @@ import ExpandableText struct ItemSeriesEpisodeIconView: View { var item: BaseItemDto + @EnvironmentObject var size: ScreenSize + + var iconWidthMultiplier: CGFloat = 0.35 + var body: some View { - HStack(alignment: .top) { - VStack(alignment: .leading) { - Text("Episode \(item.indexNumber ?? 0)") - .foregroundStyle(Color.secondary) - .font(.callout) - ItemIconView(item: item, width: UIScreen.screenWidth * 0.5, contentMode: .fill) - .setAspectRatio(item.primaryImageAspectRatio ?? 1.7) - } - .frame(width: UIScreen.screenWidth * 0.5) - - VStack(alignment: .leading) { - Text(item.name ?? "Episode \(item.indexNumber ?? 0)") - .font(.callout) - .bold() - Text(item.overview ?? "") - .frame(height: (UIScreen.screenWidth * 0.5) / (item.primaryImageAspectRatio ?? 1.7)) // Calculate optimal amount of lines based on episode image + VStack(alignment: .leading) { + HStack(alignment: .top) { + ItemIconView(item: item, width: (size.size.width * iconWidthMultiplier), height: (size.size.width * iconWidthMultiplier) / 1.7) + + VStack(alignment: .leading) { + Text("Episode \(item.indexNumber ?? 0)") + .foregroundStyle(Color.secondary) + .font(.caption) + Text(item.name ?? "---") + .bold() + .lineLimit(nil) + + Text(item.overview ?? "") + .foregroundStyle(Color.secondary) + .font(.callout) + + Spacer() + } + .frame(height: (size.size.width * iconWidthMultiplier) / 1.7) } } } diff --git a/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift b/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift index 2588515..17d5c9b 100644 --- a/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift +++ b/Jel/Views/Item/Series/ItemSeriesEpisodesView.swift @@ -17,7 +17,7 @@ struct ItemSeriesEpisodesView: View { @State var episodeItems: [BaseItemDto] = [] var body: some View { - VStack { + VStack(alignment: .leading) { ForEach(episodeItems) {episode in ItemSeriesEpisodeIconView(item: episode) } diff --git a/Jel/Views/Utility/StickyHeaderView.swift b/Jel/Views/Utility/StickyHeaderView.swift index b3bfd02..decc867 100644 --- a/Jel/Views/Utility/StickyHeaderView.swift +++ b/Jel/Views/Utility/StickyHeaderView.swift @@ -8,7 +8,6 @@ import SwiftUI struct StickyHeaderView: View { - var minHeight: CGFloat var content: Content @@ -28,7 +27,7 @@ struct StickyHeaderView: View { .frame(width: geo.size.width, height: geo.size.height + geo.frame(in: .global).minY) } } - .frame(minWidth: UIScreen.current?.bounds.width ?? 200, minHeight: minHeight) + .frame(minWidth: UIScreen.screenWidth, minHeight: minHeight) } } -- cgit v1.2.3