mirror of
https://github.com/yattee/yattee.git
synced 2025-08-06 10:44:06 +00:00
Improve channel content type picker
This commit is contained in:
@@ -4,7 +4,7 @@ import Foundation
|
||||
import SwiftyJSON
|
||||
|
||||
struct Channel: Identifiable, Hashable {
|
||||
enum ContentType: String, Identifiable {
|
||||
enum ContentType: String, Identifiable, CaseIterable {
|
||||
case videos
|
||||
case playlists
|
||||
case livestreams
|
||||
@@ -15,6 +15,15 @@ struct Channel: Identifiable, Hashable {
|
||||
rawValue
|
||||
}
|
||||
|
||||
var description: String {
|
||||
switch self {
|
||||
case .livestreams:
|
||||
return "Live Streams".localized()
|
||||
default:
|
||||
return rawValue.capitalized.localized()
|
||||
}
|
||||
}
|
||||
|
||||
var contentItemType: ContentItem.ContentType {
|
||||
switch self {
|
||||
case .videos:
|
||||
@@ -29,6 +38,21 @@ struct Channel: Identifiable, Hashable {
|
||||
return .channel
|
||||
}
|
||||
}
|
||||
|
||||
var systemImage: String {
|
||||
switch self {
|
||||
case .videos:
|
||||
return "video"
|
||||
case .playlists:
|
||||
return "list.and.film"
|
||||
case .livestreams:
|
||||
return "dot.radiowaves.left.and.right"
|
||||
case .shorts:
|
||||
return "1.square"
|
||||
case .channels:
|
||||
return "person.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Tab: Identifiable, Hashable {
|
||||
@@ -80,4 +104,9 @@ struct Channel: Identifiable, Hashable {
|
||||
var contentItem: ContentItem {
|
||||
ContentItem(channel: self)
|
||||
}
|
||||
|
||||
func hasData(for contentType: ContentType) -> Bool {
|
||||
guard contentType != .videos, contentType != .playlists else { return true }
|
||||
return tabs.contains(where: { $0.contentType == contentType })
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user