Sha256: 4de102d153d6b4d6d284a42b61af0fbccc81880a6dc94ab1715a8f6755568641

Contents?: true

Size: 1.28 KB

Versions: 245

Compression:

Stored size: 1.28 KB

Contents

const NAV_LINKS_SELECTOR = '.nav-link:not(.dropdown-toggle)';  // Bootstrap 4 class
const MENU_COLLAPSE_JQUERY = $('#mainNavContent'); // Bootstrap 4 crap that requires $() w/ an ID from the HTML
const MENU_COLLAPSE = 'mainNavContent';  // ID from the HTML
const HIDE = 'hide';  // Bootstrap 4 class
const SHOW = 'show';  // Bootstrap 4 class

function hideBootstrapMenu() {
  MENU_COLLAPSE_JQUERY.collapse(HIDE);
}

function checkIfMenuIsOpen() {
  if ( document.getElementById(MENU_COLLAPSE).classList.contains(SHOW) ) {
    return true;
  }
  return false;
}

function hideMenuIfOpen(menuIsOpen) {
  if ( menuIsOpen ) {
    hideBootstrapMenu();
  } else {
    return;
  }
}

function clickHandlerFunction(e) {
  if ( !e.target.matches(NAV_LINKS_SELECTOR) )  // Bail out of the rest of the code if the click event's target is not what we want!
    return;

  if ( e.target.classList.contains('dropdown-toggle') )
    return;


  const menuIsOpen = checkIfMenuIsOpen();

  hideMenuIfOpen(menuIsOpen);
}

function addEventListenerFunction(element, clickEvent) {
  element.addEventListener(clickEvent, clickHandlerFunction, false);
}

function closeMenuOnClick() {
  const clickEvent = 'click';
  const element = document;

  addEventListenerFunction(element, clickEvent);
}

export default closeMenuOnClick;

Version data entries

245 entries across 245 versions & 2 rubygems

Version Path
kcc-gem-theme-1.96.1 assets/js/nav/closeNavOnClick.js
kcc-gem-theme-1.96.0 assets/js/nav/closeNavOnClick.js
kcc-gem-theme-1.95.0 assets/js/nav/closeNavOnClick.js
kcc-gem-theme-2.37.1 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.37.0 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.36.0 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.35.5 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.35.4 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.35.3 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.35.2 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.35.1 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.35.0 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-1.94.1 assets/js/nav/closeNavOnClick.js
kcc-gem-theme-2.34.2 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.34.1 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.34.0 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-1.94.0 assets/js/nav/closeNavOnClick.js
kcc-gem-theme-2.33.0 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-2.32.0 assets/js/nav/nav/closeNavOnClick.js
kcc-gem-theme-1.93.0 assets/js/nav/closeNavOnClick.js