{% from "govuk/components/radios/macro.njk" import govukRadios %}
{% from "../question-format-hint/macro.njk" import digitalmarketplaceQuestionFormatHint %}

{% set name = params.question.id %}
{% set questionText = params.question.question + " (" + (params.question.optional_text if params.question.optional_text else "optional") + ")" if params.question.optional else params.question.question %}
{% set valueToQuestions = {} %}

{% if params.question.followup %}
  {% for questionId, values in params.question.followup %}
    {% for value in values %}
      {% if value in valueToQuestions %}
        {% set _valueToQuestions = valueToQuestions | setAttribute(value, valueToQuestions[value] + " " + questionId) %}
      {% else %}
        {% set _valueToQuestions = valueToQuestions | setAttribute(value, questionId) %}
      {% endif %}
    {% endfor %}
  {% endfor %}
{% endif %}

{% set options = [
  {
    label: "Yes",
    value: true
  },
  {
    label: "No",
    value: false
  }
] %}
{% set items = [] %}

{% for option in options %}
  {% set item = {
    text: option.label,
    value: option.value,
    checked: option.value == params.data[name]
  } %}
  {% if valueToQuestions[option.value] %}
    {% set data_targets = [] %}
    {% for data_target in valueToQuestions[option.value].split(" ") %}
      {% if params.list_multi_question_index != undefined  %}
        {% set _data_targets = data_targets.push(data_target + "-" + params.list_multi_question_index) %}
      {% else %}
        {% set _data_targets = data_targets.push(data_target) %}
      {% endif %}
    {% endfor %}
    {% set _item = item | setAttribute('attributes', { 'data-target': data_targets.join(" ") }) %}
  {% endif %}
  {% set _items = items.push(item) %}
{% endfor %}

{% if params.errors[name] %}
  {% set errorMessage = { "text": params.errors[name]["message"] } %}
{% elif params.frameworkReusedFrom and not params.data[name] is undefined %}
  {% set errorMessage = {
    "text": "This answer is from your " + params.frameworkReusedFrom + " declaration",
    "visuallyHiddenText": "Notice"
  } %}
  {% set formGroupClasses = "dm-form-group--declaration-reuse" %}
{% endif %}

{{ govukRadios({
  name: name,
  idPrefix: "input-" + name,
  classes: "govuk-radios--inline",
  fieldset: {
    legend: {
      html: questionText,
      classes: "govuk-fieldset__legend--m"
    }
  },
  items: items,
  formGroup: {
    classes: formGroupClasses
  },
  hint: {
    html: digitalmarketplaceQuestionFormatHint(params.question)
  } if params.question.hint or params.question.question_advice,
  errorMessage: errorMessage if errorMessage
}) }}
