import SwiftUI
import KeyboardShortcuts

struct EnhancementShortcutsView: View {
    var body: some View {
        VStack(spacing: 8) {
            // Toggle AI Enhancement
            HStack(alignment: .center, spacing: 12) {
                HStack(spacing: 4) {
                    Text("AI-verfijning aan/uit")
                        .font(.system(size: 13))

                    InfoTip(
                        "Schakel AI-verfijning snel in of uit tijdens het opnemen. Alleen beschikbaar wanneer Proat draait en de recorder zichtbaar is."
                    )
                }

                Spacer()

                KeyboardShortcuts.Recorder(for: .toggleEnhancement)
                    .controlSize(.small)
            }

            // Switch Enhancement Prompt
            HStack(alignment: .center, spacing: 12) {
                HStack(spacing: 4) {
                    Text("Verfijningsprompt wisselen")
                        .font(.system(size: 13))

                    InfoTip(
                        "Wissel tussen je opgeslagen prompts met ⌘1 tot en met ⌘0 om de bijbehorende prompt te activeren in de volgorde waarin ze zijn opgeslagen. Alleen beschikbaar wanneer Proat draait en de recorder zichtbaar is."
                    )
                }

                Spacer()

                HStack(spacing: 4) {
                    KeyChip(label: "⌘")
                    KeyChip(label: "1 – 0")
                }
            }
        }
        .background(Color.clear)
    }
}

// MARK: - Supporting Views
private struct KeyChip: View {
    let label: String

    var body: some View {
        Text(label)
            .font(ProatFont.mono)
            .foregroundColor(Color.proatText1)
            .padding(.horizontal, ProatSpacing.xs)
            .padding(.vertical, 4)
            .background(
                RoundedRectangle(cornerRadius: 4, style: .continuous)
                    .fill(Color.proatBgSunken)
            )
            .overlay(
                RoundedRectangle(cornerRadius: 4, style: .continuous)
                    .strokeBorder(
                        Color.proatBorder.opacity(0.6),
                        lineWidth: 0.5
                    )
            )
    }
}
