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)
|
.padding(.bottom, 15)
|
||||||
|
|
||||||
ForEach(viewModel.libraries, id: \.id) { library in
|
ForEach(viewModel.libraries, id: \.id) { library in
|
||||||
NavigationLink(destination: LazyView {
|
if(library.collectionType ?? "" == "movies" || library.collectionType ?? "" == "tvshows") {
|
||||||
LibraryView(viewModel: .init(parentID: library.id), title: library.name ?? "")
|
NavigationLink(destination: LazyView {
|
||||||
}) {
|
LibraryView(viewModel: .init(parentID: library.id), title: library.name ?? "")
|
||||||
ZStack() {
|
}) {
|
||||||
ImageView(src: library.getPrimaryImage(maxWidth: 500))
|
ZStack() {
|
||||||
.opacity(0.4)
|
ImageView(src: library.getPrimaryImage(maxWidth: 500), bh: library.getPrimaryImageBlurHash())
|
||||||
HStack() {
|
.opacity(0.4)
|
||||||
Spacer()
|
HStack() {
|
||||||
Text(library.name ?? "")
|
Spacer()
|
||||||
.foregroundColor(.white)
|
Text(library.name ?? "")
|
||||||
.font(.title2)
|
.foregroundColor(.white)
|
||||||
.fontWeight(.semibold)
|
.font(.title2)
|
||||||
Spacer()
|
.fontWeight(.semibold)
|
||||||
}.padding(32)
|
Spacer()
|
||||||
}.background(Color.black)
|
}.padding(32)
|
||||||
.frame(minWidth: 100, maxWidth: .infinity)
|
}.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(.leading, 16)
|
||||||
.padding(.trailing, 16)
|
.padding(.trailing, 16)
|
||||||
|
|
|
@ -49,6 +49,7 @@ extension BaseItemDto {
|
||||||
func getBackdropImage(maxWidth: Int) -> URL {
|
func getBackdropImage(maxWidth: Int) -> URL {
|
||||||
var imageType = ""
|
var imageType = ""
|
||||||
var imageTag = ""
|
var imageTag = ""
|
||||||
|
var imageItemId = self.id ?? ""
|
||||||
|
|
||||||
if self.primaryImageAspectRatio ?? 0.0 < 1.0 {
|
if self.primaryImageAspectRatio ?? 0.0 < 1.0 {
|
||||||
imageType = "Backdrop"
|
imageType = "Backdrop"
|
||||||
|
@ -60,15 +61,16 @@ extension BaseItemDto {
|
||||||
imageTag = self.imageTags?["Primary"] ?? ""
|
imageTag = self.imageTags?["Primary"] ?? ""
|
||||||
}
|
}
|
||||||
|
|
||||||
if imageTag == "" {
|
if imageTag == "" || imageItemId == "" {
|
||||||
imageType = "Backdrop"
|
imageType = "Backdrop"
|
||||||
if !(self.parentBackdropImageTags?.isEmpty ?? true) {
|
if !(self.parentBackdropImageTags?.isEmpty ?? true) {
|
||||||
imageTag = (self.parentBackdropImageTags ?? [""])[0]
|
imageTag = (self.parentBackdropImageTags ?? [""])[0]
|
||||||
|
imageItemId = self.parentBackdropItemId ?? ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let x = UIScreen.main.nativeScale * CGFloat(maxWidth)
|
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)!
|
return URL(string: urlString)!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,13 +94,16 @@ extension BaseItemDto {
|
||||||
func getPrimaryImage(maxWidth: Int) -> URL {
|
func getPrimaryImage(maxWidth: Int) -> URL {
|
||||||
let imageType = "Primary"
|
let imageType = "Primary"
|
||||||
var imageTag = self.imageTags?["Primary"] ?? ""
|
var imageTag = self.imageTags?["Primary"] ?? ""
|
||||||
|
var imageItemId = self.id ?? ""
|
||||||
if imageTag == "" {
|
|
||||||
|
if imageTag == "" || imageItemId == "" {
|
||||||
imageTag = self.seriesPrimaryImageTag ?? ""
|
imageTag = self.seriesPrimaryImageTag ?? ""
|
||||||
|
imageItemId = self.seriesId ?? ""
|
||||||
}
|
}
|
||||||
|
|
||||||
let x = UIScreen.main.nativeScale * CGFloat(maxWidth)
|
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)!
|
return URL(string: urlString)!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue