import Defaults
import SwiftUI

struct BrowsingSettings: View {
    @Default(.channelOnThumbnail) private var channelOnThumbnail
    @Default(.timeOnThumbnail) private var timeOnThumbnail
    #if os(iOS)
        @Default(.tabNavigationSection) private var tabNavigationSection
    #endif

    var body: some View {
        Section(header: SettingsHeader(text: "Browsing"), footer: footer) {
            Toggle("Display channel names on thumbnails", isOn: $channelOnThumbnail)
            Toggle("Display video length on thumbnails", isOn: $timeOnThumbnail)

            #if os(iOS)
                preferredTabPicker
            #endif
        }
        .frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)

        #if os(macOS)
            Spacer()
        #endif
    }

    var footer: some View {
        #if os(iOS)
            Text("This tab will be displayed when there is no space to display all tabs")
        #else
            EmptyView()
        #endif
    }

    #if os(iOS)
        var preferredTabPicker: some View {
            Picker("Preferred tab", selection: $tabNavigationSection) {
                Text("Trending").tag(TabNavigationSectionSetting.trending)
                Text("Popular").tag(TabNavigationSectionSetting.popular)
            }
        }
    #endif
}

struct BrowsingSettings_Previews: PreviewProvider {
    static var previews: some View {
        BrowsingSettings()
            .injectFixtureEnvironmentObjects()
    }
}