import React, { useState, useEffect, useRef } from 'react'; import { __ } from '@wordpress/i18n'; import { useNavigate } from 'react-router-dom'; import { intersection } from 'ramda'; // store import { storeSet, useStore, useTrackedStore } from '../../store'; // components import { Menu } from 'primereact/menu'; import { Toast } from 'primereact/toast'; 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 toast = useRef(null); let items = [ { template: () => { 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, ['APPLY_CALLS', 'APPLY_CONFIDI_CALLS']).length && companies.length > 0 }, { label: __('Seleziona azienda', 'gepafin'), template: () => { return (
); }, enable: companies.length }, { label: __('Aggiungi Azienda', 'gepafin'), command: () => { navigate('/agguingi-azienda') }, enable: intersection(permissions, ['APPLY_CALLS', 'APPLY_CONFIDI_CALLS']).length }, { separator: true, enable: true }, { label: __('Logout', 'gepafin'), icon: 'pi pi-sign-out', command: () => { storeSet.main.doLogout(); window.location.reload(); }, enable: true } ].filter(o => o.enable); const switchCompany = (id) => { if (chosenCompanyId !== id) { storeSet.main.chosenCompanyId(id); if (toast.current) { toast.current.show({ severity: 'success', summary: '', detail: __('L\'azienda รจ stata cambiata') }); } navigate('/') } } useEffect(() => { const items = companies.map(o => ({ label: o.companyName, companyId: o.id, component:
  • switchCompany(o.id)} data-id={o.id} data-active={chosenCompanyId === o.id}> {o.companyName}
  • })); setCompanyItems(items); }, [companies, chosenCompanyId]) return <> } export default TopBarProfileMenu;