. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 162.0.212.4 / Your IP :
216.73.216.14 [
Web Server : LiteSpeed System : Linux premium146.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : alshnoli ( 2431) PHP Version : 8.3.28 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/alshnoli/public_html/wp-content/plugins/really-simple-ssl/settings/src/Menu/ |
Upload File : |
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 ? (
<div className="rsssl-main-menu">
<div className={"rsssl-menu-item" + menuClass}>
<a href={menuLink}>
<span>{props.menuItem.title}</span>
{props.menuItem.featured && <span className='rsssl-menu-item-beta-pill'>{__('Beta', 'really-simple-ssl')}</span>}
{props.menuItem.new && <span className='rsssl-menu-item-new-pill'>{__('New', 'really-simple-ssl')}</span>}
</a>
</div>
</div>
) : (
<div className={"rsssl-menu-item" + menuClass}>
<a href={menuLink}>
<span>{props.menuItem.title}</span>
{props.menuItem.featured && <span className='rsssl-menu-item-beta-pill'>{__('Beta', 'really-simple-ssl')}</span>}
{props.menuItem.new && <span className='rsssl-menu-item-new-pill'>{__('New', 'really-simple-ssl')}</span>}
</a>
</div>
)}
{props.menuItem.menu_items && menuIsSelected && (
<div className="rsssl-submenu-item">
{ensureArray(props.menuItem.menu_items).map((subMenuItem, i) => (
subMenuItem.visible && <MenuItem key={"submenuItem" + i} menuItem={subMenuItem} isMainMenu={false} />
))}
</div>
)}
</>
)}
</>
);
}
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;
};