import { useEffect } from 'react'; import { BrowserRouter } from 'react-router-dom'; import Routes from './routes'; import { //createI18n, setLocaleData } from '@wordpress/i18n'; //import { I18nProvider } from '@wordpress/react-i18n'; import './assets/scss/theme.scss'; import { isEmpty, head } from 'ramda'; import { addLocale, PrimeReactProvider } from 'primereact/api'; // store import { useStoreValue, storeSet, storeGet } from './store'; // api import AuthenticationService from './service/authentication-service'; //const i18n = createI18n({}, 'gepafin'); function App() { const role = useStoreValue('getRole'); const chosenCompanyId = useStoreValue('chosenCompanyId'); const isRedirectedOnceNoCompany = useStoreValue('isRedirectedOnceNoCompany'); const value = { locale: 'it', }; const callback = (resp) => { if (resp.status === 'SUCCESS') { storeSet('userData', resp.data); } else { storeSet('doLogout'); } storeSet('unsetAsyncRequest'); } const errCallback = () => { storeSet('unsetAsyncRequest'); } useEffect(() => { if (['ROLE_BENEFICIARY', 'ROLE_CONFIDI'].includes(role)) { const userData = storeGet('userData'); if (userData.companies && !isEmpty(userData.companies)) { storeSet('companies', userData.companies); const company = head(userData.companies.filter(o => o.id === chosenCompanyId)); if (!company) { storeSet('chosenCompanyId', userData.companies[0].id); } } else { storeSet('chosenCompanyId', 0); const { origin, href } = window.location; const url = `${origin}/agguingi-azienda`; if (!isRedirectedOnceNoCompany && url !== href) { storeSet('isRedirectedOnceNoCompany', true); window.location.replace('/agguingi-azienda') } } } }, [role]); useEffect(() => { storeSet('setAsyncRequest'); AuthenticationService.me(callback, errCallback); addLocale('it', { startsWith: 'Inizia con', contains: 'Contiene', notContains: 'Non contiene', endsWith: 'Finisce con', equals: 'Uguale a', notEquals: 'Diverso da', noFilter: 'Nessun filtro', lt: 'Minore di', lte: 'Minore o uguale a', gt: 'Maggiore di', gte: 'Maggiore o uguale a', dateIs: 'Data uguale a', dateIsNot: 'Data diversa da', dateBefore: 'Data prima di', dateAfter: 'Data dopo', custom: 'Personalizzato', clear: 'Cancella', apply: 'Applica', matchAll: 'Tutte le condizioni', matchAny: 'Qualsiasi condizione', addRule: 'Aggiungi regola', removeRule: 'Rimuovi regola', accept: 'Sì', reject: 'No', choose: 'Scegli', upload: 'Carica', cancel: 'Annulla', dayNames: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'], dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'], dayNamesMin: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], monthNames: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'], monthNamesShort: ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'], today: 'Oggi', weekHeader: 'Sm', firstDayOfWeek: 1, dateFormat: 'dd/mm/yy', weak: 'Debole', medium: 'Medio', strong: 'Forte', passwordPrompt: 'Inserisci una password', emptyMessage: 'Nessun risultato trovato', emptyFilterMessage: 'Nessun risultato trovato' }); fetch('/languages/en_US.json') .then((res) => res.json()) .then(res => { setLocaleData(res.locale_data['gepafin'], 'gepafin') }) }, []); return ( ); } export default App; /* */