diff options
Diffstat (limited to 'Jel/Views/Library/LibraryDetailView.swift')
-rw-r--r-- | Jel/Views/Library/LibraryDetailView.swift | 65 |
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 { |