summaryrefslogtreecommitdiff
path: root/Jel/Views/Library/LibraryDetailView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Jel/Views/Library/LibraryDetailView.swift')
-rw-r--r--Jel/Views/Library/LibraryDetailView.swift65
1 files changed, 30 insertions, 35 deletions
diff --git a/Jel/Views/Library/LibraryDetailView.swift b/Jel/Views/Library/LibraryDetailView.swift
index 5d0e695..5b58a4e 100644
--- a/Jel/Views/Library/LibraryDetailView.swift
+++ b/Jel/Views/Library/LibraryDetailView.swift
@@ -34,55 +34,50 @@ struct LibraryDetailView: View {
}
ScrollView {
LazyVGrid(columns: columns) {
- if !searchText.isEmpty {
- ForEach(searchResultItems ?? []) {item in
- NavigationLink {
- ItemView(item: item)
- } label: {
- LibraryIconView(library: item, imageType: "Primary", width: 170)
- .padding()
- }
- .buttonStyle(PlainButtonStyle())
- }
- } else {
- ForEach(items ?? []) {item in
- NavigationLink {
- ItemView(item: item)
- } label: {
- LibraryIconView(library: item, imageType: "Primary", width: 170)
- .padding()
- }
- .buttonStyle(PlainButtonStyle())
+ // uses searchResultItems only if searchText is not empty
+ ForEach(!searchText.isEmpty ? (searchResultItems ?? items) ?? [] : items ?? []) {item in
+ NavigationLink {
+ ItemView(item: item)
+ } label: {
+ LibraryIconView(library: item, imageType: "Primary", width: 170)
+ .setAspectRatio(item.primaryImageAspectRatio ?? 0.6)
+ .padding()
+
}
+ .buttonStyle(PlainButtonStyle())
}
}
}
.if(!loading) {view in
view.searchable(text: $searchText)
- .onChange(of: searchText) {
- Task {
- let parameters = Paths.GetParameters(
- userID: AuthStateController.shared.userId,
- searchTerm: searchText.lowercased(),
- parentID: library.id
- )
- searchResultHints = await jellyfinClient.search(parameters: parameters)
-
- searchResultItems = items?.filter { item in
- for hint in searchResultHints?.searchHints ?? [] {
- if hint.name == item.name {
- return true
+ .onChange(of: searchText) {
+ Task {
+ let parameters = Paths.GetParameters(
+ userID: AuthStateController.shared.userId,
+ searchTerm: searchText.lowercased(),
+ parentID: library.id
+ )
+ searchResultHints = await jellyfinClient.search(parameters: parameters)
+
+ searchResultItems = items?.filter { item in
+ for hint in searchResultHints?.searchHints ?? [] {
+ if hint.name == item.name {
+ return true
+ }
}
+ return false
}
- return false
}
}
- }
}
.navigationTitle(library.name ?? "Unknown")
.onAppear {
Task {
- let params = Paths.GetItemsParameters(userID: authState.userId, parentID: library.id)
+ let params = Paths.GetItemsParameters(
+ userID: authState.userId,
+ parentID: library.id,
+ fields: [.primaryImageAspectRatio]
+ )
let request = Paths.getItems(parameters: params)
do {