import SwiftUI

struct TweaksSheet: View {
    @ObservedObject var tweaksManager: TweaksManager
    @Environment(\.dismiss) var dismiss

    var body: some View {
        NavigationStack {
            List {
                Section(header: Text("Liquid Glass Tab Bar")) {
                    TweakToggleRow(
                        title: "Enabled",
                        isOn: $tweaksManager.isLiquidGlassTabBarEnabled
                    )

                    if tweaksManager.isLiquidGlassTabBarEnabled {
                        TweakToggleRow(
                            title: "Collapse On Scroll",
                            isOn: $tweaksManager.isLiquidGlassCollapsedTabBarEnabled
                        )
                    }
                }
                Section {
                    TweakToggleRow(
                        title: "Enabled",
                        isOn: $tweaksManager.isHooksBackgroundPlayEnabled
                    )
                    if tweaksManager.isHooksBackgroundPlayEnabled {
                        TweakToggleRow(
                            title: "Pause Audio",
                            isOn: $tweaksManager.isHooksBackgroundPlayStartPausedEnabled
                        )
                    }
                } header: {
                    Text("Hooks Background Audio")
                } footer: {
                    if tweaksManager.isHooksBackgroundPlayEnabled {
                        if tweaksManager.isHooksBackgroundPlayStartPausedEnabled {
                            Text("Hooks audio pauses after leaving app, but remains playable from system audio controls.")
                        } else {
                            Text("Hooks audio continues playing after leaving app.")
                        }
                    }
                }
                Section(header: Text("Other")) {
                    TweakToggleRow(
                        title: "Focus Mode",
                        isOn: $tweaksManager.isFocusModeEnabled
                    )
                }
            }
            .preferredColorScheme(.dark)
            .navigationTitle("Tweaks")
            .navigationBarTitleDisplayMode(.inline)
        }
        .presentationDragIndicator(.visible)
    }
}

struct TweakToggleRow: View {
    let title: String
    @Binding var isOn: Bool

    var body: some View {
        HStack {
            Text(title)
                .font(Constants.Typography.mediumTitle)
                .foregroundColor(Constants.Colors.Foreground.primary)

            Spacer()

            Toggle("", isOn: $isOn)
                .labelsHidden()
                .tint(Constants.Colors.Accent.brand)
        }
    }
}

#Preview {
    TweaksSheet(tweaksManager: TweaksManager.shared)
}
