summaryrefslogtreecommitdiff
path: root/Jel/Views/Library/LibraryIconView.swift
diff options
context:
space:
mode:
authorShav Kinderlehrer <[email protected]>2023-12-23 23:47:21 -0500
committerShav Kinderlehrer <[email protected]>2023-12-23 23:47:21 -0500
commit0798bb71414e7eb77c14e3b46afa9a4eff9d8d80 (patch)
tree8a81461c4ca6302d408f692a23b99e70b48986ab /Jel/Views/Library/LibraryIconView.swift
parent53bdc33ac7e97e1c51dd27c8cb1943c7608b49d6 (diff)
downloadjel-0798bb71414e7eb77c14e3b46afa9a4eff9d8d80.tar.gz
jel-0798bb71414e7eb77c14e3b46afa9a4eff9d8d80.zip
Add ItemHeaderView
Diffstat (limited to 'Jel/Views/Library/LibraryIconView.swift')
-rw-r--r--Jel/Views/Library/LibraryIconView.swift41
1 files changed, 29 insertions, 12 deletions
diff --git a/Jel/Views/Library/LibraryIconView.swift b/Jel/Views/Library/LibraryIconView.swift
index 71c6e14..7651e56 100644
--- a/Jel/Views/Library/LibraryIconView.swift
+++ b/Jel/Views/Library/LibraryIconView.swift
@@ -20,6 +20,10 @@ struct LibraryIconView: View {
@State var blurHashImage: UIImage = UIImage()
@State var imageUrl: URL?
+ @State var contentMode: ContentMode = .fit
+
+ var shouldShowCaption: Bool = true
+ var imageCornerRadius: CGFloat = 5
var body: some View {
VStack {
LazyImage(url: imageUrl) {state in
@@ -33,22 +37,35 @@ struct LibraryIconView: View {
.resizable()
}
}
- .aspectRatio(contentMode: .fit)
+ .aspectRatio(contentMode: contentMode)
.frame(width: width, height: height)
- .clipShape(RoundedRectangle(cornerRadius: 5))
+ .clipShape(RoundedRectangle(cornerRadius: imageCornerRadius))
+ .onAppear {
+ let blurhash = library.imageBlurHashes?.primary?[library.imageTags?[imageType] ?? ""] ?? ""
+ blurHashImage = UIImage(blurHash: blurhash, size: CGSize(width: 16, height: 16)) ?? UIImage()
+
+ let imageId = library.id ?? ""
+ let request = Paths.getItemImage(itemID: imageId, imageType: imageType)
+ imageUrl = jellyfinClient.getUrl()?.appending(path: request.url?.absoluteString ?? "")
+ }
- Text(library.name ?? "Unknown")
- .font(.subheadline)
- .onAppear {
- let blurhash = library.imageBlurHashes?.primary?[library.imageTags?[imageType] ?? ""] ?? ""
- blurHashImage = UIImage(blurHash: blurhash, size: CGSize(width: 16, height: 16)) ?? UIImage()
-
- let imageId = library.id ?? ""
- let request = Paths.getItemImage(itemID: imageId, imageType: imageType)
- imageUrl = jellyfinClient.getUrl()?.appending(path: request.url?.absoluteString ?? "")
- }
+ if shouldShowCaption {
+ Text(library.name ?? "Unknown")
+ .font(.subheadline)
+ }
}
}
+ func hideCaption(_ isHidden: Bool = true) -> Self {
+ var copy = self
+ copy.shouldShowCaption = !isHidden
+ return copy
+ }
+
+ func setCornerRadius(_ cornerRadius: CGFloat = 5) -> Self {
+ var copy = self
+ copy.imageCornerRadius = cornerRadius
+ return copy
+ }
}
//#Preview {