import { __ } from '@wordpress/i18n'; import useMenu from "./MenuData"; const MenuItem = (props) => { const {selectedSubMenuItem, selectedMainMenuItem, subMenu, menu} = useMenu(); const menuIsSelected = isSelectedMenuItem(selectedSubMenuItem, props.menuItem); const ensureArray = (data) => { return Array.isArray(data) ? data : [data]; } let menuClass = menuIsSelected ? ' rsssl-active' : ''; menuClass += props.menuItem.featured ? ' rsssl-featured' : ''; menuClass += props.menuItem.new ? ' rsssl-new' : ''; menuClass += props.menuItem.premium && !rsssl_settings.pro_plugin_active ? ' rsssl-premium' : ''; let menuLink = props.menuItem.directLink || '#'+selectedMainMenuItem+'/'+props.menuItem.id; return ( <> {props.menuItem.visible && ( <> {props.isMainMenu ? (
{props.menuItem.title} {props.menuItem.featured && {__('Beta', 'really-simple-ssl')}} {props.menuItem.new && {__('New', 'really-simple-ssl')}}
) : (
{props.menuItem.title} {props.menuItem.featured && {__('Beta', 'really-simple-ssl')}} {props.menuItem.new && {__('New', 'really-simple-ssl')}}
)} {props.menuItem.menu_items && menuIsSelected && (
{ensureArray(props.menuItem.menu_items).map((subMenuItem, i) => ( subMenuItem.visible && ))}
)} )} ); } export default MenuItem /** * Utility function to check if selected menu item is the current menu item or a child of the current menu item * @param selectedSubMenuItem * @param menuItem * @returns {boolean} */ const isSelectedMenuItem = (selectedSubMenuItem, menuItem) => { if (selectedSubMenuItem === menuItem.id) { return true; } if (menuItem.menu_items) { for (const item of menuItem.menu_items) { if (item.id === selectedSubMenuItem) { return true; } } } return false; };