import SwiftUI

// MARK: - Settings View (iOS)

/// Settings sheet for audio toggles that were menu items on macOS.
/// Presented as a modal sheet from the gear icon.
struct SettingsView_iOS: View {
    @ObservedObject var appState: AppState_iOS
    @Environment(\.dismiss) private var dismiss

    var body: some View {
        NavigationStack {
            Form {
                Section("Recording") {
                    Toggle("Count-In (1 measure)", isOn: $appState.countInEnabled)

                    Toggle("Monitor Recording Part", isOn: $appState.monitorRecordingPart)

                    Toggle("Metronome During Recording", isOn: $appState.metronomeDuringRecording)
                }

                Section("Pitch Correction") {
                    Toggle("Pitch Correction", isOn: $appState.pitchCorrectionEnabled)

                    if appState.pitchCorrectionEnabled {
                        VStack(alignment: .leading, spacing: 4) {
                            HStack {
                                Text("Correction Strength")
                                Spacer()
                                Text("\(Int(appState.pitchCorrectionStrength * 100))%")
                                    .foregroundColor(.secondary)
                            }
                            Slider(value: $appState.pitchCorrectionStrength, in: 0...1, step: 0.05)
                        }
                    }
                }

                Section {
                    HStack {
                        Text("Count-In")
                        Spacer()
                        Text("Plays one measure of metronome clicks before recording or playback begins")
                            .font(.caption)
                            .foregroundColor(.secondary)
                            .multilineTextAlignment(.trailing)
                    }

                    HStack {
                        Text("Monitor")
                        Spacer()
                        Text("Hear your part's tone playback while you sing")
                            .font(.caption)
                            .foregroundColor(.secondary)
                            .multilineTextAlignment(.trailing)
                    }

                    HStack {
                        Text("Metronome")
                        Spacer()
                        Text("Quiet click track during recording to help keep time")
                            .font(.caption)
                            .foregroundColor(.secondary)
                            .multilineTextAlignment(.trailing)
                    }
                } header: {
                    Text("What do these do?")
                }
            }
            .navigationTitle("Settings")
            .navigationBarTitleDisplayMode(.inline)
            .toolbar {
                ToolbarItem(placement: .confirmationAction) {
                    Button("Done") { dismiss() }
                }
            }
        }
    }
}
