mirror of
https://github.com/yattee/yattee.git
synced 2026-05-13 02:45:03 +00:00
Add Open URL and Remote Control as sidebar items
After disabling home shortcuts on tvOS, Open URL and Remote Control had no entry point. Add them as configurable sidebar main items. Remote Control defaults to visible on tvOS; Open URL defaults to hidden on all platforms.
This commit is contained in:
@@ -35,6 +35,8 @@ struct UnifiedTabView: View {
|
||||
@State private var manageChannelsPath = NavigationPath()
|
||||
@State private var sourcesPath = NavigationPath()
|
||||
@State private var settingsPath = NavigationPath()
|
||||
@State private var openURLPath = NavigationPath()
|
||||
@State private var remoteControlPath = NavigationPath()
|
||||
|
||||
// Current selection - initial value is a placeholder; actual startup tab is applied in onAppear
|
||||
@State private var selection: SidebarItem = .home
|
||||
@@ -199,6 +201,27 @@ struct UnifiedTabView: View {
|
||||
} label: {
|
||||
Label(SidebarItem.settings.title, systemImage: SidebarItem.settings.systemImage)
|
||||
}
|
||||
|
||||
case .openURL:
|
||||
Tab(value: SidebarItem.openURL) {
|
||||
NavigationStack(path: $openURLPath) {
|
||||
OpenLinkView()
|
||||
.withNavigationDestinations()
|
||||
}
|
||||
} label: {
|
||||
Label(SidebarItem.openURL.title, systemImage: SidebarItem.openURL.systemImage)
|
||||
}
|
||||
|
||||
case .remoteControl:
|
||||
Tab(value: SidebarItem.remoteControl) {
|
||||
NavigationStack(path: $remoteControlPath) {
|
||||
RemoteControlContentView(navigationStyle: .link)
|
||||
.navigationTitle(String(localized: "remoteControl.title"))
|
||||
.withNavigationDestinations()
|
||||
}
|
||||
} label: {
|
||||
Label(SidebarItem.remoteControl.title, systemImage: SidebarItem.remoteControl.systemImage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -319,6 +342,8 @@ struct UnifiedTabView: View {
|
||||
@State private var manageChannelsPath = NavigationPath()
|
||||
@State private var sourcesPath = NavigationPath()
|
||||
@State private var settingsPath = NavigationPath()
|
||||
@State private var openURLPath = NavigationPath()
|
||||
@State private var remoteControlPath = NavigationPath()
|
||||
|
||||
// Current selection - initial value is a placeholder; actual startup tab is applied in onAppear
|
||||
@State private var selection: SidebarItem = .home
|
||||
@@ -463,6 +488,26 @@ struct UnifiedTabView: View {
|
||||
} label: {
|
||||
Label(SidebarItem.settings.title, systemImage: SidebarItem.settings.systemImage)
|
||||
}
|
||||
|
||||
case .openURL:
|
||||
Tab(value: SidebarItem.openURL) {
|
||||
NavigationStack(path: $openURLPath) {
|
||||
OpenLinkView().withNavigationDestinations()
|
||||
}
|
||||
} label: {
|
||||
Label(SidebarItem.openURL.title, systemImage: SidebarItem.openURL.systemImage)
|
||||
}
|
||||
|
||||
case .remoteControl:
|
||||
Tab(value: SidebarItem.remoteControl) {
|
||||
NavigationStack(path: $remoteControlPath) {
|
||||
RemoteControlContentView(navigationStyle: .link)
|
||||
.navigationTitle(String(localized: "remoteControl.title"))
|
||||
.withNavigationDestinations()
|
||||
}
|
||||
} label: {
|
||||
Label(SidebarItem.remoteControl.title, systemImage: SidebarItem.remoteControl.systemImage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -538,6 +583,8 @@ struct UnifiedTabView: View {
|
||||
@State private var manageChannelsPath = NavigationPath()
|
||||
@State private var sourcesPath = NavigationPath()
|
||||
@State private var settingsPath = NavigationPath()
|
||||
@State private var openURLPath = NavigationPath()
|
||||
@State private var remoteControlPath = NavigationPath()
|
||||
|
||||
// Current selection - initial value is a placeholder; actual startup tab is applied in onAppear
|
||||
@State private var selection: SidebarItem = .home
|
||||
@@ -700,6 +747,27 @@ struct UnifiedTabView: View {
|
||||
} label: {
|
||||
Label(SidebarItem.settings.title, systemImage: SidebarItem.settings.systemImage)
|
||||
}
|
||||
|
||||
case .openURL:
|
||||
Tab(value: SidebarItem.openURL) {
|
||||
NavigationStack(path: $openURLPath) {
|
||||
OpenLinkView()
|
||||
.withNavigationDestinations()
|
||||
}
|
||||
} label: {
|
||||
Label(SidebarItem.openURL.title, systemImage: SidebarItem.openURL.systemImage)
|
||||
}
|
||||
|
||||
case .remoteControl:
|
||||
Tab(value: SidebarItem.remoteControl) {
|
||||
NavigationStack(path: $remoteControlPath) {
|
||||
RemoteControlContentView(navigationStyle: .link)
|
||||
.navigationTitle(String(localized: "remoteControl.title"))
|
||||
.withNavigationDestinations()
|
||||
}
|
||||
} label: {
|
||||
Label(SidebarItem.remoteControl.title, systemImage: SidebarItem.remoteControl.systemImage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -814,6 +882,10 @@ extension UnifiedTabView {
|
||||
settingsPath.append(destination)
|
||||
case .nowPlaying:
|
||||
break // Now Playing is a root tab, not a push destination
|
||||
case .openURL:
|
||||
openURLPath.append(destination)
|
||||
case .remoteControl:
|
||||
remoteControlPath.append(destination)
|
||||
}
|
||||
navigationCoordinator?.clearPendingNavigation()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user