UNPKG

design-comuni-plone-theme

Version:
62 lines (58 loc) 1.81 kB
/** * UserLoggedMenu component. * @module components/ItaliaTheme/Header/HeaderSlim/UserLoggedMenu * * le azione proposte sono configurate in config.settings.siteProperties.userLoggedMenu * nella forma: * userLoggedMenu: [ * { * href: { it: '/area-personale-cittadino' }, * title: { it: 'Area personale' }, * roles: [], * className: 'link-areaPersonale', * }, * { * href: { it: '/area-personale-operatore' }, * title: { it: 'Area operatore' }, * roles: ['Gestore Pratiche'], * className: 'link-areaOperatore', * }, * ], * */ import React from 'react'; import { useIntl } from 'react-intl'; import { LinkListItem } from 'design-react-kit'; import config from '@plone/volto/registry'; const UserLoggedMenu = ({ userLogged }) => { const intl = useIntl(); const items = config.settings.siteProperties.userLoggedMenu || []; return ( <> <LinkListItem divider tag="a" /> {items .filter( (item) => !item.roles || item.roles.length === 0 || (item.roles && userLogged.roles && userLogged?.roles.find((e) => item.roles.includes(e))), ) .map((item, index) => ( <React.Fragment key={`userloggedmenu-${index}`}> <LinkListItem href={item.href?.[intl.locale] || item.href.it} title={item.title?.[intl.locale] || item.title.it} tag="a" className={item.className} > <span>{item.title?.[intl.locale] || item.title.it}</span> </LinkListItem> <LinkListItem divider tag="a" /> </React.Fragment> ))} </> ); }; export default UserLoggedMenu;