// Sources/UI/Settings/SettingsView.swift
// T-2.11: Settings sheet — Face ID toggle + credential info + unpair.

import LocalAuthentication
import SwiftUI

@MainActor
struct SettingsView: View {
    let credential: SidecarCredential
    @EnvironmentObject var appState: AppState
    @Environment(\.dismiss) var dismiss

    @AppStorage("faceid.enabled") private var faceIDEnabled = false

    var body: some View {
        NavigationStack {
            Form {
                Section("Security") {
                    Toggle("Require Face ID", isOn: $faceIDEnabled)
                    if faceIDEnabled {
                        Text("Face ID is required on launch and after 60 seconds in background.")
                            .font(.caption)
                            .foregroundStyle(.secondary)
                    }
                }

                Section("Sidecar") {
                    LabeledContent("Name", value: credential.sidecarName)
                    LabeledContent("Host", value: "\(credential.host):\(credential.port)")
                    LabeledContent("Paired", value: credential.pairedAt.formatted(date: .abbreviated, time: .shortened))
                }

                Section("Danger") {
                    Button("Unpair", role: .destructive) {
                        appState.unpair()
                        dismiss()
                    }
                }
            }
            .navigationTitle("Settings")
            .toolbar {
                ToolbarItem(placement: .topBarTrailing) {
                    Button("Done") { dismiss() }
                }
            }
        }
    }
}
