feat: for tvOS
This commit is contained in:
@@ -10,6 +10,10 @@ struct DetailView: View {
|
||||
@State private var showPlayer = false
|
||||
#endif
|
||||
|
||||
#if os(tvOS)
|
||||
@Environment(\.dismiss) private var dismiss
|
||||
#endif
|
||||
|
||||
var body: some View {
|
||||
Group {
|
||||
if viewModel.isLoading {
|
||||
@@ -32,7 +36,19 @@ struct DetailView: View {
|
||||
await viewModel.loadDetail(path: item.detailURL)
|
||||
}
|
||||
}
|
||||
#if os(iOS)
|
||||
#if os(tvOS)
|
||||
.fullScreenCover(isPresented: $showPlayer) {
|
||||
if let episode = viewModel.currentEpisode {
|
||||
VideoPlayerView(
|
||||
url: episode.url,
|
||||
title: item.title,
|
||||
episodeName: viewModel.hasMultipleEpisodes ? episode.name : nil,
|
||||
contentId: item.id,
|
||||
episodeId: episode.id
|
||||
)
|
||||
}
|
||||
}
|
||||
#elseif os(iOS)
|
||||
.sheet(isPresented: $showPlayer) {
|
||||
if let episode = viewModel.currentEpisode {
|
||||
VideoPlayerView(
|
||||
|
||||
@@ -5,9 +5,15 @@ struct EpisodeListView: View {
|
||||
let selectedIndex: Int
|
||||
let onSelect: (Int) -> Void
|
||||
|
||||
#if os(tvOS)
|
||||
private let columns = [
|
||||
GridItem(.adaptive(minimum: 120, maximum: 160), spacing: 12)
|
||||
]
|
||||
#else
|
||||
private let columns = [
|
||||
GridItem(.adaptive(minimum: 70, maximum: 100), spacing: 8)
|
||||
]
|
||||
#endif
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading, spacing: 8) {
|
||||
|
||||
Reference in New Issue
Block a user