Refactor list view. Fix some images not appearing.
This commit is contained in:
parent
7c9b443bc7
commit
d6f6378bda
|
@ -57,26 +57,30 @@ struct LibraryListView: View {
|
|||
.padding(.bottom, 15)
|
||||
|
||||
ForEach(viewModel.libraries, id: \.id) { library in
|
||||
NavigationLink(destination: LazyView {
|
||||
LibraryView(viewModel: .init(parentID: library.id), title: library.name ?? "")
|
||||
}) {
|
||||
ZStack() {
|
||||
ImageView(src: library.getPrimaryImage(maxWidth: 500))
|
||||
.opacity(0.4)
|
||||
HStack() {
|
||||
Spacer()
|
||||
Text(library.name ?? "")
|
||||
.foregroundColor(.white)
|
||||
.font(.title2)
|
||||
.fontWeight(.semibold)
|
||||
Spacer()
|
||||
}.padding(32)
|
||||
}.background(Color.black)
|
||||
.frame(minWidth: 100, maxWidth: .infinity)
|
||||
if(library.collectionType ?? "" == "movies" || library.collectionType ?? "" == "tvshows") {
|
||||
NavigationLink(destination: LazyView {
|
||||
LibraryView(viewModel: .init(parentID: library.id), title: library.name ?? "")
|
||||
}) {
|
||||
ZStack() {
|
||||
ImageView(src: library.getPrimaryImage(maxWidth: 500), bh: library.getPrimaryImageBlurHash())
|
||||
.opacity(0.4)
|
||||
HStack() {
|
||||
Spacer()
|
||||
Text(library.name ?? "")
|
||||
.foregroundColor(.white)
|
||||
.font(.title2)
|
||||
.fontWeight(.semibold)
|
||||
Spacer()
|
||||
}.padding(32)
|
||||
}.background(Color.black)
|
||||
.frame(minWidth: 100, maxWidth: .infinity)
|
||||
}
|
||||
.cornerRadius(10)
|
||||
.shadow(radius: 5)
|
||||
.padding(.bottom, 5)
|
||||
} else {
|
||||
EmptyView()
|
||||
}
|
||||
.cornerRadius(10)
|
||||
.shadow(radius: 5)
|
||||
.padding(.bottom, 5)
|
||||
}
|
||||
}.padding(.leading, 16)
|
||||
.padding(.trailing, 16)
|
||||
|
|
|
@ -49,6 +49,7 @@ extension BaseItemDto {
|
|||
func getBackdropImage(maxWidth: Int) -> URL {
|
||||
var imageType = ""
|
||||
var imageTag = ""
|
||||
var imageItemId = self.id ?? ""
|
||||
|
||||
if self.primaryImageAspectRatio ?? 0.0 < 1.0 {
|
||||
imageType = "Backdrop"
|
||||
|
@ -60,15 +61,16 @@ extension BaseItemDto {
|
|||
imageTag = self.imageTags?["Primary"] ?? ""
|
||||
}
|
||||
|
||||
if imageTag == "" {
|
||||
if imageTag == "" || imageItemId == "" {
|
||||
imageType = "Backdrop"
|
||||
if !(self.parentBackdropImageTags?.isEmpty ?? true) {
|
||||
imageTag = (self.parentBackdropImageTags ?? [""])[0]
|
||||
imageItemId = self.parentBackdropItemId ?? ""
|
||||
}
|
||||
}
|
||||
|
||||
let x = UIScreen.main.nativeScale * CGFloat(maxWidth)
|
||||
let urlString = "\(ServerEnvironment.current.server.baseURI!)/Items/\(self.id ?? "")/Images/\(imageType)?maxWidth=\(String(Int(x)))&quality=60&tag=\(imageTag)"
|
||||
let urlString = "\(ServerEnvironment.current.server.baseURI!)/Items/\(imageItemId)/Images/\(imageType)?maxWidth=\(String(Int(x)))&quality=60&tag=\(imageTag)"
|
||||
return URL(string: urlString)!
|
||||
}
|
||||
|
||||
|
@ -92,13 +94,16 @@ extension BaseItemDto {
|
|||
func getPrimaryImage(maxWidth: Int) -> URL {
|
||||
let imageType = "Primary"
|
||||
var imageTag = self.imageTags?["Primary"] ?? ""
|
||||
|
||||
if imageTag == "" {
|
||||
var imageItemId = self.id ?? ""
|
||||
|
||||
if imageTag == "" || imageItemId == "" {
|
||||
imageTag = self.seriesPrimaryImageTag ?? ""
|
||||
imageItemId = self.seriesId ?? ""
|
||||
}
|
||||
|
||||
let x = UIScreen.main.nativeScale * CGFloat(maxWidth)
|
||||
|
||||
let urlString = "\(ServerEnvironment.current.server.baseURI!)/Items/\(self.id ?? "")/Images/\(imageType)?maxWidth=\(String(Int(x)))&quality=60&tag=\(imageTag)"
|
||||
let urlString = "\(ServerEnvironment.current.server.baseURI!)/Items/\(imageItemId)/Images/\(imageType)?maxWidth=\(String(Int(x)))&quality=60&tag=\(imageTag)"
|
||||
return URL(string: urlString)!
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue