Fix video context menu channel subscription button (fixes #41)

This commit is contained in:
Arkadiusz Fal
2021-12-19 23:27:20 +01:00
parent f132ba9683
commit 0a5cb5b542
8 changed files with 61 additions and 55 deletions

View File

@@ -57,6 +57,7 @@ struct ChannelPlaylistView: View {
}
#endif
VerticalCells(items: items)
.environment(\.inChannelPlaylistView, true)
}
#if os(iOS)
.sheet(isPresented: $presentingShareSheet) {

View File

@@ -67,46 +67,40 @@ struct ChannelVideosView: View {
.frame(maxWidth: .infinity)
#endif
#if os(iOS)
VerticalCells(items: videos)
#else
if #available(macOS 12.0, *) {
VerticalCells(items: videos)
.prefersDefaultFocus(in: focusNamespace)
} else {
VerticalCells(items: videos)
}
VerticalCells(items: videos)
.environment(\.inChannelView, true)
#if os(tvOS)
.prefersDefaultFocus(in: focusNamespace)
#endif
}
.environment(\.inChannelView, true)
#if !os(tvOS)
.toolbar {
ToolbarItem(placement: .navigation) {
ShareButton(
contentItem: contentItem,
presentingShareSheet: $presentingShareSheet,
shareURL: $shareURL
)
}
.toolbar {
ToolbarItem(placement: .navigation) {
ShareButton(
contentItem: contentItem,
presentingShareSheet: $presentingShareSheet,
shareURL: $shareURL
)
}
ToolbarItem {
HStack {
HStack(spacing: 3) {
Text("\(store.item?.subscriptionsString ?? "loading")")
.fontWeight(.bold)
Text(" subscribers")
}
.allowsTightening(true)
.foregroundColor(.secondary)
.opacity(store.item?.subscriptionsString != nil ? 1 : 0)
subscriptionToggleButton
FavoriteButton(item: FavoriteItem(section: .channel(channel.id, channel.name)))
ToolbarItem {
HStack {
HStack(spacing: 3) {
Text("\(store.item?.subscriptionsString ?? "loading")")
.fontWeight(.bold)
Text(" subscribers")
}
.allowsTightening(true)
.foregroundColor(.secondary)
.opacity(store.item?.subscriptionsString != nil ? 1 : 0)
subscriptionToggleButton
FavoriteButton(item: FavoriteItem(section: .channel(channel.id, channel.name)))
}
}
}
#endif
#if os(iOS)
.sheet(isPresented: $presentingShareSheet) {
@@ -164,17 +158,6 @@ struct ChannelVideosView: View {
}
}
}
.alert(isPresented: $navigation.presentingUnsubscribeAlert) {
Alert(
title: Text(
"Are you sure you want to unsubscribe from \(channel.name)?"
),
primaryButton: .destructive(Text("Unsubscribe")) {
subscriptions.unsubscribe(channel.id)
},
secondaryButton: .cancel()
)
}
}
private var contentItem: ContentItem {

View File

@@ -8,6 +8,7 @@ struct VideoContextMenuView: View {
@Environment(\.inNavigationView) private var inNavigationView
@Environment(\.inChannelView) private var inChannelView
@Environment(\.inChannelPlaylistView) private var inChannelPlaylistView
@Environment(\.navigationStyle) private var navigationStyle
@Environment(\.currentPlaylistID) private var playlistID
@@ -28,11 +29,11 @@ struct VideoContextMenuView: View {
addToQueueButton
}
if !inChannelView {
if !inChannelView, !inChannelPlaylistView {
Section {
openChannelButton
if accounts.app.supportsSubscriptions {
if accounts.app.supportsSubscriptions, accounts.api.signedIn {
subscriptionButton
}
}