<?php
/**
 * This file adds functions and actions for classes.
 *
 * @author Freeshifter LLC
 * @since 1.0.0
 */

namespace WP_73k;

add_filter( 'body_class', function( $classes ) {

  if ( is_singular( ['post', 'page'] ) ) {
    $classes[] = 'singular';
  }

  if ( is_front_page() ) {
    $classes[] = 'front-page';
  }

  return $classes;

});

/*
 * Filter to add CSS class to navbar menu <li> items
 */
add_filter( 'nav_menu_css_class' , function( $classes, $item, $args, $depth ) {
  if ( 'primary' === $args->theme_location ) {
    if (property_exists($args, 'menu_item_class')) {
      array_push($classes, $args->menu_item_class);
    }
  }      
  return $classes;
}, 3, 4 );

/*
 * Filter to add CSS class to navbar menu item <a> links
 */
add_filter( 'nav_menu_link_attributes' , function( $atts, $item, $args ) {
  if ( 'primary' === $args->theme_location ) {
    $atts['class'] = (empty($atts['class'])) ? '' : $atts['class'];
    if ( in_array('current_page_item', $item->classes) ) {
      $atts['class'] .= ' active';
    }
    if (property_exists($args, 'link_class')) {
      $atts['class'] .= ' ' . $args->link_class;
    }
  }
  return $atts;
}, 2, 3 );

/*
 * Filter to add icons to navbar menu items
 */
add_filter( 'wp_nav_menu_objects', function($items, $args) {
  $svgicon_prefix = 'icon-';
  foreach ( $items as $k => $object ) {
    foreach ($object->classes as $c) {
      if (substr( $c, 0, strlen( $svgicon_prefix ) ) === $svgicon_prefix) {
        $icon_slug = str_replace($svgicon_prefix, '', $c);
        $object->title = svg_icon_use($icon_slug, 'icon baseline') . "\\" . $object->title;
      }
    }
  }
  return $items;
}, 1, 2 );

/*
 * Filter for syntax-highlighting-code-block plugin style theme
 */
add_filter(
	'syntax_highlighting_code_block_style',
	function() {
		// return 'tomorrow-night-eighties';
		return 'tomorrow-night';
	}
);