Hide description header in tvOS video info right column

The right column is already dedicated to video info so the "Description"
label is redundant. Add an opt-out `showsHeader` parameter to
`TVScrollableDescription` (default true) and pass false from
`VideoInfoView`; the player overlay and channel view keep the header.
This commit is contained in:
Arkadiusz Fal
2026-04-16 04:55:17 +02:00
parent 9b55ee7127
commit f49dfd6246
2 changed files with 14 additions and 10 deletions

View File

@@ -309,6 +309,7 @@ enum TVDetailsFocusItem: Hashable {
struct TVScrollableDescription: View {
let description: String
@Binding var isScrollLocked: Bool
var showsHeader: Bool = true
@FocusState private var isFocused: Bool
@State private var scrollOffset: CGFloat = 0
@@ -358,17 +359,19 @@ struct TVScrollableDescription: View {
private var descriptionContent: some View {
VStack(alignment: .leading, spacing: 12) {
HStack {
Text("player.description")
.font(.headline)
.foregroundStyle(.white.opacity(0.7))
if showsHeader {
HStack {
Text("player.description")
.font(.headline)
.foregroundStyle(.white.opacity(0.7))
Spacer()
Spacer()
if isFocused {
Text(isScrollLocked ? "player.description.scrollToClose" : "player.description.clickToExpand")
.font(.callout)
.foregroundStyle(.white.opacity(0.5))
if isFocused {
Text(isScrollLocked ? "player.description.scrollToClose" : "player.description.clickToExpand")
.font(.callout)
.foregroundStyle(.white.opacity(0.5))
}
}
}

View File

@@ -675,7 +675,8 @@ struct VideoInfoView: View {
} else if let description = displayedVideo?.description, !description.isEmpty {
TVScrollableDescription(
description: description,
isScrollLocked: $isDescriptionScrollLocked
isScrollLocked: $isDescriptionScrollLocked,
showsHeader: false
)
.frame(height: isDescriptionScrollLocked ? geometry.size.height : 450)
.padding(.horizontal)