import Foundation
import SDWebImageSwiftUI
import SwiftUI

struct ChaptersView: View {
    @ObservedObject private var player = PlayerModel.shared

    var chapters: [Chapter] {
        player.videoForDisplay?.chapters ?? []
    }

    var chaptersHaveImages: Bool {
        chapters.allSatisfy { $0.image != nil }
    }

    var body: some View {
        if !chapters.isEmpty {
            #if os(tvOS)
                List {
                    Section {
                        ForEach(chapters) { chapter in
                            ChapterView(chapter: chapter)
                        }
                    }
                    .listRowBackground(Color.clear)
                }
                .listStyle(.plain)
            #else
                if chaptersHaveImages {
                    ScrollView(.horizontal) {
                        LazyHStack(spacing: 20) {
                            ForEach(chapters) { chapter in
                                ChapterView(chapter: chapter)
                            }
                        }
                        .padding(.horizontal, 15)
                    }
                    .frame(minHeight: ChapterView.thumbnailHeight + 100)
                } else {
                    Section {
                        ForEach(chapters) { chapter in
                            ChapterView(chapter: chapter)
                        }
                    }
                    .padding(.horizontal)
                }
            #endif
        } else {
            NoCommentsView(text: "No chapters information available".localized(), systemImage: "xmark.circle.fill")
        }
    }
}

struct ChaptersView_Previews: PreviewProvider {
    static var previews: some View {
        ChaptersView()
            .injectFixtureEnvironmentObjects()
    }
}