import SwiftUI

struct ControlsOverlayButton<LabelView: View>: View {
    var focusedField: FocusState<ControlsOverlay.Field?>.Binding
    var field: ControlsOverlay.Field
    let label: LabelView

    init(
        focusedField: FocusState<ControlsOverlay.Field?>.Binding,
        field: ControlsOverlay.Field,
        @ViewBuilder label: @escaping () -> LabelView
    ) {
        self.focusedField = focusedField
        self.field = field
        self.label = label()
    }

    var body: some View {
        label
            .padding()
            .frame(width: 400)
            .focusable()
            .focused(focusedField, equals: field)
            .background(focusedField.wrappedValue == field ? Color.white : Color.secondary)
            .foregroundColor(focusedField.wrappedValue == field ? Color.black : Color.white)
            .clipShape(RoundedRectangle(cornerRadius: 4))
    }
}