diff options
author | Shav Kinderlehrer <[email protected]> | 2023-12-23 23:47:21 -0500 |
---|---|---|
committer | Shav Kinderlehrer <[email protected]> | 2023-12-23 23:47:21 -0500 |
commit | 0798bb71414e7eb77c14e3b46afa9a4eff9d8d80 (patch) | |
tree | 8a81461c4ca6302d408f692a23b99e70b48986ab /Jel/Views/Library/LibraryIconView.swift | |
parent | 53bdc33ac7e97e1c51dd27c8cb1943c7608b49d6 (diff) | |
download | jel-0798bb71414e7eb77c14e3b46afa9a4eff9d8d80.tar.gz jel-0798bb71414e7eb77c14e3b46afa9a4eff9d8d80.zip |
Add ItemHeaderView
Diffstat (limited to 'Jel/Views/Library/LibraryIconView.swift')
-rw-r--r-- | Jel/Views/Library/LibraryIconView.swift | 41 |
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 { |