diff options
author | Shav Kinderlehrer <[email protected]> | 2024-01-07 16:41:45 -0500 |
---|---|---|
committer | Shav Kinderlehrer <[email protected]> | 2024-01-07 16:41:45 -0500 |
commit | 4d40b0c083fa78a90337273b83b44f450c3d3d9b (patch) | |
tree | 63b8c559f735609cef3b94518e2e4084408e1ea1 /Jel/Views | |
parent | a271314f15c30f59d84296a12aab280eda2d3c64 (diff) | |
download | jel-4d40b0c083fa78a90337273b83b44f450c3d3d9b.tar.gz jel-4d40b0c083fa78a90337273b83b44f450c3d3d9b.zip |
Use backdrop blurhash + rename LibraryIconView
Diffstat (limited to 'Jel/Views')
-rw-r--r-- | Jel/Views/Dashboard/DashboardLibraryView.swift | 4 | ||||
-rw-r--r-- | Jel/Views/Dashboard/DashboardSectionTitleView.swift | 1 | ||||
-rw-r--r-- | Jel/Views/Dashboard/DashboardView.swift | 10 | ||||
-rw-r--r-- | Jel/Views/Library/Item/ItemHeaderView.swift | 6 | ||||
-rw-r--r-- | Jel/Views/Library/Item/ItemInfoView.swift | 6 | ||||
-rw-r--r-- | Jel/Views/Library/ItemIconView.swift (renamed from Jel/Views/Library/LibraryIconView.swift) | 24 | ||||
-rw-r--r-- | Jel/Views/Library/LibraryDetailView.swift | 2 |
7 files changed, 29 insertions, 24 deletions
diff --git a/Jel/Views/Dashboard/DashboardLibraryView.swift b/Jel/Views/Dashboard/DashboardLibraryView.swift index 7526dce..2a8dee1 100644 --- a/Jel/Views/Dashboard/DashboardLibraryView.swift +++ b/Jel/Views/Dashboard/DashboardLibraryView.swift @@ -28,12 +28,12 @@ struct DashboardLibraryView: View { NavigationLink { LibraryDetailView(library: library) } label: { - LibraryIconView(library: library, height: 150) + ItemIconView(item: library, height: 150) .setAspectRatio(library.primaryImageAspectRatio) } .buttonStyle(PlainButtonStyle()) } - } + }.padding(.horizontal) } } .onAppear { diff --git a/Jel/Views/Dashboard/DashboardSectionTitleView.swift b/Jel/Views/Dashboard/DashboardSectionTitleView.swift index 2456dc2..608458a 100644 --- a/Jel/Views/Dashboard/DashboardSectionTitleView.swift +++ b/Jel/Views/Dashboard/DashboardSectionTitleView.swift @@ -21,7 +21,6 @@ struct DashboardSectionTitleView: View { .bold() Spacer() } - .padding(.top) } } diff --git a/Jel/Views/Dashboard/DashboardView.swift b/Jel/Views/Dashboard/DashboardView.swift index 279f056..5ad25f8 100644 --- a/Jel/Views/Dashboard/DashboardView.swift +++ b/Jel/Views/Dashboard/DashboardView.swift @@ -20,17 +20,9 @@ struct DashboardView: View { } } header: { DashboardSectionTitleView("Libraries") - } - - Section { - NavigationStack { - DashboardLibraryView() - } - } header: { - DashboardSectionTitleView("Next up") + .padding([.top, .leading]) } } - .padding() } .navigationTitle("Home") .toolbar { diff --git a/Jel/Views/Library/Item/ItemHeaderView.swift b/Jel/Views/Library/Item/ItemHeaderView.swift index 3930beb..b8a708a 100644 --- a/Jel/Views/Library/Item/ItemHeaderView.swift +++ b/Jel/Views/Library/Item/ItemHeaderView.swift @@ -21,18 +21,18 @@ struct ItemHeaderView: View { var body: some View { ZStack(alignment: .bottom) { StickyHeaderView(minHeight: 300) { - LibraryIconView(library: item, imageType: "Backdrop", contentMode: .fill) + ItemIconView(item: item, imageType: "Backdrop", contentMode: .fill) .setCornerRadius(0) .mask(overlayGradient) .background { - LibraryIconView(library: item, imageType: "Backdrop", contentMode: .fill) + ItemIconView(item: item, imageType: "Backdrop", contentMode: .fill) .setCornerRadius(0) .blur(radius: 50) } } HStack { - LibraryIconView(library: item, imageType: "Logo", width: 200, height: 100, placeHolder: AnyView(Text(item.name ?? "Unknown").font(.title).bold().truncationMode(.middle))) + ItemIconView(item: item, imageType: "Logo", width: 200, height: 100, placeHolder: AnyView(Text(item.name ?? "Unknown").font(.title).bold().truncationMode(.middle))) .setCornerRadius(0) .shadow(radius: 10) .frame(alignment: .leading) diff --git a/Jel/Views/Library/Item/ItemInfoView.swift b/Jel/Views/Library/Item/ItemInfoView.swift index f682898..022fa71 100644 --- a/Jel/Views/Library/Item/ItemInfoView.swift +++ b/Jel/Views/Library/Item/ItemInfoView.swift @@ -21,8 +21,10 @@ struct ItemInfoView: View { Text(item.genres?.first ?? "---") .shadow(color: .black, radius: 1) } - Text(item.getRuntime() ?? "-:--") - .shadow(color: .black, radius: 1) + if item.type == .movie { + Text(item.getRuntime() ?? "-:--") + .shadow(color: .black, radius: 1) + } } .font(.caption) } diff --git a/Jel/Views/Library/LibraryIconView.swift b/Jel/Views/Library/ItemIconView.swift index 800d488..ec3952c 100644 --- a/Jel/Views/Library/LibraryIconView.swift +++ b/Jel/Views/Library/ItemIconView.swift @@ -1,5 +1,5 @@ // -// LibraryIconView.swift +// ItemIconView.swift // Jel // // Created by zerocool on 12/15/23. @@ -9,10 +9,10 @@ import SwiftUI import JellyfinKit import NukeUI -struct LibraryIconView: View { +struct ItemIconView: View { @EnvironmentObject var jellyfinClient: JellyfinClientController - var library: BaseItemDto + var item: BaseItemDto var imageType: String = "Primary" var width: CGFloat? @@ -46,20 +46,32 @@ struct LibraryIconView: View { .frame(width: width, height: height) .clipShape(RoundedRectangle(cornerRadius: imageCornerRadius)) .onAppear { - let blurhash = library.imageBlurHashes?.primary?[library.imageTags?[imageType] ?? ""] ?? "" + let blurhash = getBlurHash(imageType: imageType) blurHashImage = UIImage(blurHash: blurhash, size: CGSize(width: 32, height: 32)) ?? UIImage() - let imageId = library.id ?? "" + let imageId = item.id ?? "" let request = Paths.getItemImage(itemID: imageId, imageType: imageType) imageUrl = jellyfinClient.getUrl()?.appending(path: request.url?.absoluteString ?? "") } if shouldShowCaption { - Text(library.name ?? "Unknown") + Text(item.name ?? "Unknown") .font(.subheadline) } } } + + private func getBlurHash(imageType: String) -> String { + switch imageType { + case "Primary": + return item.imageBlurHashes?.primary?[item.imageTags?[imageType] ?? ""] ?? "" + case "Backdrop": + return item.imageBlurHashes?.backdrop?[item.backdropImageTags?[0] ?? ""] ?? "" + default: + return "" + } + } + func showCaption(_ showCaption: Bool = true) -> Self { var copy = self copy.shouldShowCaption = showCaption diff --git a/Jel/Views/Library/LibraryDetailView.swift b/Jel/Views/Library/LibraryDetailView.swift index 1dc0c9c..ece4e74 100644 --- a/Jel/Views/Library/LibraryDetailView.swift +++ b/Jel/Views/Library/LibraryDetailView.swift @@ -39,7 +39,7 @@ struct LibraryDetailView: View { NavigationLink { ItemView(item: item) } label: { - LibraryIconView(library: item, imageType: "Primary", width: 150) + ItemIconView(item: item, imageType: "Primary", width: 150) .showCaption() .setAspectRatio(item.primaryImageAspectRatio ?? 0.6) .padding() |