mirror of
https://github.com/yattee/yattee.git
synced 2025-08-06 10:44:06 +00:00
More search UI improvements across all the platforms
This commit is contained in:
@@ -225,12 +225,12 @@ final class InvidiousAPI: Service, ObservableObject {
|
||||
.withParam("q", searchQuery(query.query))
|
||||
.withParam("sort_by", query.sortBy.parameter)
|
||||
|
||||
if let date = query.date?.rawValue {
|
||||
resource = resource.withParam("date", date)
|
||||
if let date = query.date, date != .any {
|
||||
resource = resource.withParam("date", date.rawValue)
|
||||
}
|
||||
|
||||
if let duration = query.duration?.rawValue {
|
||||
resource = resource.withParam("duration", duration)
|
||||
if let duration = query.duration, duration != .any {
|
||||
resource = resource.withParam("duration", duration.rawValue)
|
||||
}
|
||||
|
||||
return resource
|
||||
|
@@ -116,7 +116,7 @@ final class PlayerModel: ObservableObject {
|
||||
self.saveTime()
|
||||
self.player?.replaceCurrentItem(with: self.playerItemWithMetadata(for: stream))
|
||||
self.playback.stream = stream
|
||||
if self.timeObserver == nil {
|
||||
if self.timeObserver.isNil {
|
||||
self.addTimeObserver()
|
||||
}
|
||||
self.player?.play()
|
||||
@@ -201,7 +201,7 @@ final class PlayerModel: ObservableObject {
|
||||
}
|
||||
|
||||
fileprivate func composition(for stream: Stream) -> AVMutableComposition {
|
||||
if compositions[stream] == nil {
|
||||
if compositions[stream].isNil {
|
||||
compositions[stream] = AVMutableComposition()
|
||||
}
|
||||
|
||||
|
@@ -29,7 +29,9 @@ final class RecentsModel: ObservableObject {
|
||||
}
|
||||
|
||||
func addQuery(_ query: String) {
|
||||
open(.init(from: query))
|
||||
if !query.isEmpty {
|
||||
open(.init(from: query))
|
||||
}
|
||||
}
|
||||
|
||||
var presentedChannel: Channel? {
|
||||
|
@@ -5,7 +5,7 @@ import SwiftUI
|
||||
final class SearchModel: ObservableObject {
|
||||
@Published var store = Store<[Video]>()
|
||||
|
||||
@Published var api: InvidiousAPI!
|
||||
@Published var api = InvidiousAPI()
|
||||
@Published var query = SearchQuery()
|
||||
@Published var queryText = ""
|
||||
@Published var querySuggestions = Store<[String]>()
|
||||
@@ -30,10 +30,13 @@ final class SearchModel: ObservableObject {
|
||||
|
||||
resource = newResource
|
||||
resource.addObserver(store)
|
||||
loadResourceIfNeededAndReplaceStore()
|
||||
|
||||
if !query.isEmpty {
|
||||
loadResourceIfNeededAndReplaceStore()
|
||||
}
|
||||
}
|
||||
|
||||
func resetQuery(_ query: SearchQuery) {
|
||||
func resetQuery(_ query: SearchQuery = SearchQuery()) {
|
||||
self.query = query
|
||||
|
||||
let newResource = api.search(query)
|
||||
@@ -48,7 +51,10 @@ final class SearchModel: ObservableObject {
|
||||
|
||||
resource = newResource
|
||||
resource.addObserver(store)
|
||||
loadResourceIfNeededAndReplaceStore()
|
||||
|
||||
if !query.isEmpty {
|
||||
loadResourceIfNeededAndReplaceStore()
|
||||
}
|
||||
}
|
||||
|
||||
func loadResourceIfNeededAndReplaceStore() {
|
||||
|
@@ -3,7 +3,7 @@ import Foundation
|
||||
|
||||
final class SearchQuery: ObservableObject {
|
||||
enum Date: String, CaseIterable, Identifiable, DefaultsSerializable {
|
||||
case hour, today, week, month, year
|
||||
case any, hour, today, week, month, year
|
||||
|
||||
var id: SearchQuery.Date.RawValue {
|
||||
rawValue
|
||||
@@ -15,7 +15,7 @@ final class SearchQuery: ObservableObject {
|
||||
}
|
||||
|
||||
enum Duration: String, CaseIterable, Identifiable, DefaultsSerializable {
|
||||
case short, long
|
||||
case any, short, long
|
||||
|
||||
var id: SearchQuery.Duration.RawValue {
|
||||
rawValue
|
||||
|
Reference in New Issue
Block a user