Files
bflows-bandi-fe/src/App.js
Vitalii Kiiko 7dcf932819 - updated zustand and react libraries;
- added 'put in draft' btn;
2025-04-10 12:36:19 +02:00

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>
*/