import React, { useState, useEffect } from 'react'; import { __ } from '@wordpress/i18n'; import { useNavigate } from 'react-router-dom'; // store import { storeSet, useStore, useTrackedStore } from '../../store'; // components import { Menu } from 'primereact/menu'; import { intersection } from 'ramda'; const TopBarProfileMenu = ({ menuLeftRef }) => { const navigate = useNavigate(); const userData = useTrackedStore().main.userData(); const fulleName = `${userData.firstName} ${userData.lastName}`; const permissions = useStore().main.getPermissions(); const companies = useStore().main.companies(); const chosenCompanyId = useStore().main.chosenCompanyId() const [companyItems, setCompanyItems] = useState([]); const renderCompanyItem = (item) => ( { } : () => switchCompany(item.companyId)} data-id={item.companyId} data-active={chosenCompanyId === item.companyId}> {item.label} ); let items = [ { template: (item, options) => { return (
{/**/}
{fulleName} {userData.email}
); }, enable: true }, { label: __('Il mio profilo', 'gepafin'), command: () => { navigate('/profilo') }, enable: true }, { label: __('Profilo aziendale', 'gepafin'), command: () => { navigate('/profilo-aziendale') }, enable: !intersection(permissions, ['MANAGE_TENDERS']).length && companies.length > 0 }, { label: __('Seleziona azienda', 'gepafin'), items: companyItems, enable: companies.length }, { label: __('Aggiungi Azienda', 'gepafin'), command: () => { navigate('/agguingi-azienda') }, enable: !intersection(permissions, ['MANAGE_TENDERS']).length }, { separator: true, enable: true }, { label: __('Logout', 'gepafin'), icon: 'pi pi-sign-out', command: () => { storeSet.main.doLogout(); }, enable: true } ].filter(o => o.enable); const switchCompany = (id) => { console.log('switchCompany'); } useEffect(() => { const items = companies.map(o => ({ label: o.companyName, companyId: o.id, template: renderCompanyItem })); setCompanyItems(items) }, [companies]) return <> } export default TopBarProfileMenu;