Skip to content

Commit

Permalink
Additional improvements to talk player on iOS and tvOS
Browse files Browse the repository at this point in the history
  • Loading branch information
mbernson committed Dec 30, 2023
1 parent aa8c02f commit 2bd46af
Showing 1 changed file with 30 additions and 16 deletions.
46 changes: 30 additions & 16 deletions CCCTube/Features/Talk/TalkView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,21 @@ struct TalkView: View {
@EnvironmentObject var api: ApiService

var body: some View {
Group {
#if os(tvOS)
ScrollView {
HStack(alignment: .top) {
TalkMainView(talk: talk, viewModel: viewModel)
#if os(tvOS)
HStack(alignment: .top) {
TalkMainView(talk: talk, viewModel: viewModel)

TalkMetaView(talk: talk, selectedRecording: $selectedRecording, viewModel: viewModel)
.frame(maxWidth: 480, maxHeight: .infinity)
}
TalkMetaView(talk: talk, selectedRecording: $selectedRecording, viewModel: viewModel)
.frame(maxWidth: 480, maxHeight: .infinity)
}
#else
ScrollView {
VStack(spacing: 20) {
TalkMainView(talk: talk, viewModel: viewModel)
VStack(spacing: 20) {
TalkMainView(talk: talk, viewModel: viewModel)

TalkMetaView(talk: talk, selectedRecording: $selectedRecording, viewModel: viewModel)
.frame(maxWidth: .infinity, alignment: .leading)
}
.padding(.horizontal)
TalkMetaView(talk: talk, selectedRecording: $selectedRecording, viewModel: viewModel)
.padding(.horizontal)
.frame(maxWidth: .infinity, alignment: .leading)
}
.navigationBarTitleDisplayMode(.inline)
#endif
Expand Down Expand Up @@ -99,15 +95,17 @@ private struct TalkMainView: View {
.aspectRatio(16 / 9, contentMode: .fit)
#endif
}
.frame(maxWidth: 800)
.frame(maxWidth: 1024)
.frame(maxWidth: .infinity, alignment: .center)

if let description = talk.description {
TalkDescriptionView(talk: talk, description: description)
.font(.body)
.padding(.horizontal)
}

CopyrightView(talk: talk, viewModel: viewModel)
.padding(.horizontal)
}
.animation(.default, value: viewModel.copyright)
#if os(tvOS)
Expand Down Expand Up @@ -168,13 +166,25 @@ private struct TalkDescriptionView: View {

if let shortDescription = paragraphs.first, paragraphs.count > 1 {
VStack(alignment: .leading, spacing: 20) {
#if os(tvOS)
Button {
presentTalkDescription()
} label: {
Text(shortDescription)
.lineLimit(5)
.multilineTextAlignment(.leading)
.padding()
}
.padding()
#else
Text(shortDescription)
.lineLimit(5)
.multilineTextAlignment(.leading)

Button("Read more") {
talkDescription = TalkDescription(text: description)
presentTalkDescription()
}
#endif
}
.sheet(item: $talkDescription) { talkDescription in
NavigationStack {
Expand All @@ -199,6 +209,10 @@ private struct TalkDescriptionView: View {
.multilineTextAlignment(.leading)
}
}

func presentTalkDescription() {
talkDescription = TalkDescription(text: description)
}
}

private let minutesFormatter: DateComponentsFormatter = {
Expand Down

0 comments on commit 2bd46af

Please sign in to comment.