Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
Aiden Vigue 2021-07-16 20:07:41 -04:00
commit 7ec57a1919
No known key found for this signature in database
GPG Key ID: B9A09843AB079D5B
2 changed files with 16 additions and 16 deletions

View File

@ -11,9 +11,9 @@ import SwiftUI
struct SearchBar: View {
@Binding var text: String
@State private var isEditing = false
var body: some View {
HStack(spacing: 8) {
TextField(NSLocalizedString("Search...", comment: ""), text: $text)

View File

@ -13,36 +13,36 @@ import Foundation
import JellyfinAPI
final class LibrarySearchViewModel: ViewModel {
@Published var supportedItemTypeList = [ItemType]()
@Published var selectedItemType: ItemType = .movie
@Published var movieItems = [BaseItemDto]()
@Published var showItems = [BaseItemDto]()
@Published var episodeItems = [BaseItemDto]()
@Published var suggestions = [BaseItemDto]()
var searchQuerySubject = CurrentValueSubject<String, Never>("")
var parentID: String?
init(parentID: String?) {
self.parentID = parentID
super.init()
searchQuerySubject
.filter { !$0.isEmpty }
.debounce(for: 0.25, scheduler: DispatchQueue.main)
.sink(receiveValue: search)
.store(in: &cancellables)
setupPublishersForSupportedItemType()
requestSuggestions()
}
func setupPublishersForSupportedItemType() {
let supportedItemTypeListPublishers = Publishers.CombineLatest3($movieItems, $showItems, $episodeItems)
.debounce(for: 0.25, scheduler: DispatchQueue.main)
.map { arg -> [ItemType] in
@ -58,11 +58,11 @@ final class LibrarySearchViewModel: ViewModel {
}
return typeList
}
supportedItemTypeListPublishers
.assign(to: \.supportedItemTypeList, on: self)
.store(in: &cancellables)
supportedItemTypeListPublishers
.withLatestFrom(supportedItemTypeListPublishers, $selectedItemType)
.compactMap { typeList, selectedItemType in
@ -75,7 +75,7 @@ final class LibrarySearchViewModel: ViewModel {
.assign(to: \.selectedItemType, on: self)
.store(in: &cancellables)
}
func requestSuggestions() {
ItemsAPI.getItemsByUserId(userId: SessionManager.current.user.user_id!,
limit: 20,
@ -92,7 +92,7 @@ final class LibrarySearchViewModel: ViewModel {
}
.store(in: &cancellables)
}
func search(with query: String) {
ItemsAPI.getItemsByUserId(userId: SessionManager.current.user.user_id!, limit: 50, recursive: true, searchTerm: query,
sortOrder: [.ascending], parentId: parentID,