UNPKG

@shopgate/engage

Version:
4 lines 1.93 kB
function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useState,useCallback,useMemo,useEffect}from'react';import ArrowDrop from'@shopgate/pwa-ui-shared/icons/ArrowDropIcon';import{chevronButton,chevronUp,chevronDown,open}from"./SideNavigationCategoriesItem.style";import SideNavigationItem from"./SideNavigationItem";/** * The SideNavigationCategoriesItem component * @returns {JSX} */var SideNavigationNestedItem=function SideNavigationNestedItem(_ref){var level=_ref.level,label=_ref.label,href=_ref.href,children=_ref.children,forceActive=_ref.forceActive;var _useState=useState(forceActive),_useState2=_slicedToArray(_useState,2),isOpen=_useState2[0],setIsOpen=_useState2[1];useEffect(function(){if(forceActive){setIsOpen(true);}},[forceActive]);var handleClick=useCallback(function(){setIsOpen(!isOpen);},[isOpen]);var buttonRight=useMemo(function(){return React.createElement("button",{type:"button",onClick:handleClick,className:chevronButton},React.createElement(ArrowDrop,{className:(isOpen?chevronUp:chevronDown).toString()}));},[handleClick,isOpen]);return React.createElement(SideNavigationItem,{href:href,label:label,level:level,buttonRight:buttonRight,className:level===0&&isOpen?open:null,forceInactive:true},isOpen?children:null);};SideNavigationNestedItem.defaultProps={level:0,forceActive:false};export default SideNavigationNestedItem;