139 lines
4.7 KiB
JavaScript
139 lines
4.7 KiB
JavaScript
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 (
|
|
<BrowserRouter>
|
|
<PrimeReactProvider value={value}>
|
|
<Routes role={role} chosenCompanyId={chosenCompanyId}/>
|
|
</PrimeReactProvider>
|
|
</BrowserRouter>
|
|
);
|
|
}
|
|
|
|
export default App;
|
|
|
|
/*
|
|
<I18nProvider i18n={i18n}>
|
|
<BrowserRouter>
|
|
<PrimeReactProvider value={value}>
|
|
<Routes role={role} chosenCompanyId={chosenCompanyId}/>
|
|
</PrimeReactProvider>
|
|
</BrowserRouter>
|
|
</I18nProvider>
|
|
*/ |