This commit is contained in:
Arkadiusz Fal 2023-04-22 21:39:27 +02:00
parent 83dfdd6c0e
commit ea997ffdb9

View File

@ -7,6 +7,7 @@ struct ChannelsView: View {
@ObservedObject private var subscriptions = SubscribedChannelsModel.shared @ObservedObject private var subscriptions = SubscribedChannelsModel.shared
@ObservedObject private var accounts = AccountsModel.shared @ObservedObject private var accounts = AccountsModel.shared
@ObservedObject private var feedCount = UnwatchedFeedCountModel.shared @ObservedObject private var feedCount = UnwatchedFeedCountModel.shared
private var navigation = NavigationModel.shared
@Default(.showCacheStatus) private var showCacheStatus @Default(.showCacheStatus) private var showCacheStatus
@Default(.showUnwatchedFeedBadges) private var showUnwatchedFeedBadges @Default(.showUnwatchedFeedBadges) private var showUnwatchedFeedBadges
@ -15,19 +16,31 @@ struct ChannelsView: View {
List { List {
Section(header: header) { Section(header: header) {
ForEach(subscriptions.all) { channel in ForEach(subscriptions.all) { channel in
NavigationLink(destination: ChannelVideosView(channel: channel)) { let label = HStack {
HStack { if let url = channel.thumbnailURLOrCached {
if let url = channel.thumbnailURLOrCached { ThumbnailView(url: url)
ThumbnailView(url: url) .frame(width: 35, height: 35)
.frame(width: 35, height: 35) .clipShape(RoundedRectangle(cornerRadius: 35))
.clipShape(RoundedRectangle(cornerRadius: 35)) Text(channel.name)
Text(channel.name) } else {
} else { Label(channel.name, systemImage: RecentsModel.symbolSystemImage(channel.name))
Label(channel.name, systemImage: RecentsModel.symbolSystemImage(channel.name))
}
} }
.backport }
.badge(showUnwatchedFeedBadges ? feedCount.unwatchedByChannelText(channel) : nil) .backport
.badge(showUnwatchedFeedBadges ? feedCount.unwatchedByChannelText(channel) : nil)
Group {
#if os(tvOS)
Button {
navigation.openChannel(channel, navigationStyle: .tab)
} label: {
label
}
#else
NavigationLink(destination: ChannelVideosView(channel: channel)) {
label
}
#endif
} }
.contextMenu { .contextMenu {
if subscriptions.isSubscribing(channel.id) { if subscriptions.isSubscribing(channel.id) {