HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/farmfun.komma.pro/resources/js/site/components/categoryHandler.js
/* ==========================================================================
   Accordion handler
   - Handles the accordion component which has the proper classes.
 ========================================================================== */

const CategoryHandler = {

    categoryToggleClass : 'js-category-toggle',
    categoryGroupClass : 'js-category-group',

    init: function () {

        const toggleList = document.querySelectorAll('.'+CategoryHandler.categoryToggleClass);
        const toggleListCount = toggleList.length;

        if(isset(toggleList) && toggleListCount !== 0){
            for(let i = 0; i < toggleListCount; i++){
                const toggle = toggleList[i];
                CategoryHandler.initToggle(toggle);
            }
        }
    },

    initToggle: function (toggle) {
        toggle.addEventListener('click', CategoryHandler.activateToggle, false);
    },

    activateToggle: function (event) {
        const item = event.target;
        const itemId = item.getAttribute('data-category')
        const allToggles = document.querySelectorAll('.'+CategoryHandler.categoryToggleClass);
        const allGroups = document.querySelectorAll('.'+CategoryHandler.categoryGroupClass);

        // Remove all active classes from toggles
        for(let i = 0; i < allToggles.length; i++){
            allToggles[i].classList.remove('is-active');
        }

        // Remove all active classes from groups
        // and show the correct group
        for(let i = 0; i < allGroups.length; i++){
            allGroups[i].classList.remove('is-active');

            if(allGroups[i].getAttribute('data-category') === itemId){
                allGroups[i].classList.add('is-active');
            }
        }

        // Prevent default link behavior
        event.preventDefault();

        // Toggle the active class
        item.classList.add('is-active');
    }
};

CategoryHandler.init();