Fix tvOS focus navigation: add focusSection to all major UI sections
Focus couldn't move from DashboardView controls up to the CategoryPillBar, or between sections within screens. Added .platformFocusSection() to: - ContentView: pill bar and content area as separate focus sections - DashboardView: header, overview strip, hero+control section - LeagueCenterView: schedule, standings, leaders, teams sections This lets the tvOS Focus Engine navigate vertically between all sections with d-pad up/down. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,7 @@ struct ContentView: View {
|
||||
)
|
||||
.padding(.horizontal, DS.Spacing.edgeInset)
|
||||
.padding(.top, navPadTop)
|
||||
.platformFocusSection()
|
||||
|
||||
if showsTicker {
|
||||
ScoresTickerView()
|
||||
@@ -43,6 +44,7 @@ struct ContentView: View {
|
||||
}
|
||||
}
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
|
||||
.platformFocusSection()
|
||||
}
|
||||
}
|
||||
.task {
|
||||
|
||||
@@ -120,6 +120,7 @@ struct DashboardView: View {
|
||||
ScrollView {
|
||||
VStack(alignment: .leading, spacing: contentSpacing) {
|
||||
headerSection
|
||||
.platformFocusSection()
|
||||
|
||||
if viewModel.isLoading {
|
||||
loadingState
|
||||
@@ -127,7 +128,9 @@ struct DashboardView: View {
|
||||
errorState(error)
|
||||
} else {
|
||||
overviewStrip
|
||||
.platformFocusSection()
|
||||
heroAndControlSection
|
||||
.platformFocusSection()
|
||||
|
||||
if !viewModel.liveGames.isEmpty {
|
||||
gameShelf(
|
||||
|
||||
@@ -35,16 +35,18 @@ struct LeagueCenterView: View {
|
||||
}
|
||||
|
||||
scheduleSection
|
||||
.platformFocusSection()
|
||||
|
||||
#if os(tvOS)
|
||||
// Side-by-side: standings left, leaders right
|
||||
HStack(alignment: .top, spacing: 24) {
|
||||
standingsSection
|
||||
.frame(maxWidth: .infinity)
|
||||
.platformFocusSection()
|
||||
|
||||
if !viewModel.leagueLeaders.isEmpty {
|
||||
leadersColumnSection
|
||||
.frame(width: 420)
|
||||
.platformFocusSection()
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -56,6 +58,7 @@ struct LeagueCenterView: View {
|
||||
#endif
|
||||
|
||||
teamsSection
|
||||
.platformFocusSection()
|
||||
|
||||
if let selectedTeam = viewModel.selectedTeam {
|
||||
teamProfileSection(team: selectedTeam)
|
||||
|
||||
Reference in New Issue
Block a user