You are here

function claro_preprocess_links__dropbutton in Drupal 8

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

Implements hook_preprocess_HOOK() for links__dropbutton.

File

core/themes/claro/claro.theme, line 999
Functions to support theming in the Claro theme.

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);
  }
}