Sha256: dfe3a98470b07adb8418ce9450ead387a16ab5de1744620bc5acc5eb55e7c844

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

<%
  id_prefix ||= "radio-#{SecureRandom.hex(4)}"
  items ||= []

  # check if any item is set as being conditional
  has_conditional = items.any? { |item| item["conditional"] }
%>
<%= content_tag :div, class: "govuk-form-group" do %>
  <%= content_tag :div, class: "govuk-radios",
    data: {
      module: ('radios' if has_conditional)
    } do %>
    <% items.each_with_index do |item, index| %>
      <% if item === :or %>
        <div class="govuk-radios__divider">
          <%= t('components.radio.or') %>
        </div>
      <% else %>
        <%
          item_next = items[index + 1] unless index === items.size - 1
          label_id = item[:id] ? item[:id] : "#{id_prefix}-#{index}"
          label_hint_id = "label-hint-#{SecureRandom.hex(4)}" if item[:hint_text].present?
          conditional_id = "conditional-#{SecureRandom.hex(4)}" if item[:conditional].present?
        %>
        <%= tag.div class: %w( gem-c-radio govuk-radios__item ) do %>
          <%= check_box_tag name,
            item[:value],
            item[:checked],
            {
              class: "govuk-radios__input",
              id: label_id,
              type: "radio",
              aria: {
                describedby: label_hint_id
              },
              data: {
                "aria-controls": conditional_id
              }
            }
          %>
          <%= render "govuk_publishing_components/components/label", {
            hint_id: label_hint_id,
            html_for: label_id,
            classes: "govuk-radios__label",
            hint_text_classes: "govuk-radios__hint",
            hint_text: item[:hint_text],
            text: item[:text],
            bold: item[:bold]
          } %>
        <% end %>

        <% if item[:conditional] %>
        <div class="govuk-radios__conditional" id="<%= conditional_id %>">
          <%= item[:conditional] %>
        </div>
        <% end %>

      <% end %>
    <% end %>
  <% end %>
<% end %>

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
govuk_publishing_components-9.7.0 app/views/govuk_publishing_components/components/_radio.html.erb