Adding search queries to favorites

This commit is contained in:
Arkadiusz Fal
2021-11-09 18:43:15 +01:00
parent afcefc2e54
commit ef5ac0ec65
6 changed files with 96 additions and 21 deletions

View File

@@ -105,6 +105,14 @@ struct FavoriteItemView: View {
case let .playlist(id):
return accounts.api.playlist(id)
case let .searchQuery(text, date, duration, order):
return accounts.api.search(.init(
query: text,
sortBy: SearchQuery.SortOrder(rawValue: order) ?? .uploadDate,
date: SearchQuery.Date(rawValue: date),
duration: SearchQuery.Duration(rawValue: duration)
))
}
return nil

View File

@@ -2,21 +2,19 @@ import Foundation
import Siesta
final class FavoriteResourceObserver: ObservableObject, ResourceObserver {
@Published var videos = [Video]()
@Published var contentItems = [ContentItem]()
func resourceChanged(_ resource: Resource, event _: ResourceEvent) {
if let videos: [Video] = resource.typedContent() {
self.videos = videos
contentItems = videos.map { ContentItem(video: $0) }
} else if let channel: Channel = resource.typedContent() {
videos = channel.videos
contentItems = channel.videos.map { ContentItem(video: $0) }
} else if let playlist: ChannelPlaylist = resource.typedContent() {
videos = playlist.videos
contentItems = playlist.videos.map { ContentItem(video: $0) }
} else if let playlist: Playlist = resource.typedContent() {
videos = playlist.videos
contentItems = playlist.videos.map { ContentItem(video: $0) }
} else if let items: [ContentItem] = resource.typedContent() {
contentItems = items
}
}
var contentItems: [ContentItem] {
videos.map { ContentItem(video: $0) }
}
}