mirror of
https://github.com/yattee/yattee.git
synced 2025-10-11 01:48:12 +00:00
22
Shared/Home/FavoriteResourceObserver.swift
Normal file
22
Shared/Home/FavoriteResourceObserver.swift
Normal file
@@ -0,0 +1,22 @@
|
||||
import Foundation
|
||||
import Siesta
|
||||
|
||||
final class FavoriteResourceObserver: ObservableObject, ResourceObserver {
|
||||
@Published var contentItems = [ContentItem]()
|
||||
|
||||
func resourceChanged(_ resource: Resource, event _: ResourceEvent) {
|
||||
if let videos: [Video] = resource.typedContent() {
|
||||
contentItems = videos.map { ContentItem(video: $0) }
|
||||
} else if let channel: Channel = resource.typedContent() {
|
||||
contentItems = channel.videos.map { ContentItem(video: $0) }
|
||||
} else if let playlist: ChannelPlaylist = resource.typedContent() {
|
||||
contentItems = playlist.videos.map { ContentItem(video: $0) }
|
||||
} else if let playlist: Playlist = resource.typedContent() {
|
||||
contentItems = playlist.videos.map { ContentItem(video: $0) }
|
||||
} else if let page: SearchPage = resource.typedContent() {
|
||||
contentItems = page.results
|
||||
} else if let items: [ContentItem] = resource.typedContent() {
|
||||
contentItems = items
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user