import SwiftUI

struct PriorityPicker: View {
    @Binding var selectedPriority: Priority

    var body: some View {
        VStack(alignment: .leading, spacing: 8) {
            Text("Priority")
                .font(.subheadline)
                .fontWeight(.semibold)

            HStack(spacing: 8) {
                ForEach(Priority.allCases) { priority in
                    let isSelected = selectedPriority == priority

                    Button {
                        selectedPriority = priority
                    } label: {
                        HStack(spacing: 6) {
                            Circle()
                                .fill(colorForPriority(priority))
                                .frame(width: 10, height: 10)
                            Text(priority.displayName)
                                .font(.subheadline)
                        }
                        .frame(maxWidth: .infinity)
                        .padding(.vertical, 10)
                        .background(
                            RoundedRectangle(cornerRadius: 8)
                                .fill(isSelected ? colorForPriority(priority).opacity(0.15) : Color(.systemGray6))
                        )
                        .overlay(
                            RoundedRectangle(cornerRadius: 8)
                                .stroke(isSelected ? colorForPriority(priority) : Color.clear, lineWidth: 2)
                        )
                        .foregroundStyle(isSelected ? colorForPriority(priority) : .primary)
                    }
                    .buttonStyle(.plain)
                }
            }
        }
    }

    private func colorForPriority(_ priority: Priority) -> Color {
        switch priority {
        case .low: return .green
        case .medium: return .orange
        case .high: return .red
        }
    }
}
