import React from 'react' import { NavLink, useLocation } from 'react-router-dom' import PropTypes from 'prop-types' import { CBadge } from '@coreui/react' export const AppSidebarNav = ({ items }) => { const location = useLocation() const navLink = (name, icon, badge) => { return ( <> {icon && icon} {name && name} {badge && ( {badge.text} )} ) } const navItem = (item, index) => { const { component, name, badge, icon, ...rest } = item const Component = component return ( <> {navLink(name, icon, badge)} ) } const navGroup = (item, index) => { const { component, name, icon, to, ...rest } = item const Component = component return ( {item.items?.map((item, index) => item.items ? navGroup(item, index) : navItem(item, index), )} ) } return ( {items && items.map((item, index) => (item.items ? navGroup(item, index) : navItem(item, index)))} ) } AppSidebarNav.propTypes = { items: PropTypes.arrayOf(PropTypes.any).isRequired, }