[create-pull-request] automated change

This commit is contained in:
acvigue 2021-07-16 03:41:09 +00:00 committed by GitHub
parent 11671d9c42
commit de4be5ddcf
2 changed files with 16 additions and 16 deletions

View File

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

View File

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