function claro_preprocess_links__dropbutton

Same name and namespace in other branches
  1. 10 core/themes/claro/claro.theme \claro_preprocess_links__dropbutton()
  2. 11.x core/themes/claro/claro.theme \claro_preprocess_links__dropbutton()
  3. 9 core/themes/claro/claro.theme \claro_preprocess_links__dropbutton()

Implements hook_preprocess_HOOK() for links__dropbutton.

File

core/themes/claro/claro.theme, line 999

Code

function claro_preprocess_links__dropbutton(&$variables) {
  // Add the right CSS class for the dropbutton list that helps reducing FOUC.
  if (!empty($variables['links'])) {
    $variables['attributes']['class'][] = count($variables['links']) > 1 ? 'dropbutton--multiple' : 'dropbutton--single';
  }
  $item_classes = [
    'dropbutton__item',
  ];
  // Check that the dropbutton has a supported variant class.
  // @todo Revisit after https://www.drupal.org/node/3057581 is added.
  if (!empty($variables['attributes']['class'])) {
    if (array_search('dropbutton--small', $variables['attributes']['class'])) {
      $item_classes[] = 'dropbutton__item--small';
    }
    elseif (array_search('dropbutton--extrasmall', $variables['attributes']['class'])) {
      $item_classes[] = 'dropbutton__item--extrasmall';
    }
  }
  foreach ($variables['links'] as &$link_data) {
    $link_data['attributes']->addClass($item_classes);
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.