import React, { useRef, useEffect, useState } from 'react'; import { __, sprintf } from '@wordpress/i18n'; import { classNames } from 'primereact/utils'; import { isEmpty, isNil } from 'ramda'; // store import { storeSet, useStore } from '../../store'; // api import AuthenticationService from '../../service/authentication-service'; // components import LogoIcon from '../../icons/LogoIcon'; import { Messages } from 'primereact/messages'; import { useSearchParams } from 'react-router-dom'; import { Dialog } from 'primereact/dialog'; import { Accordion } from 'primereact/accordion'; import { AccordionTab } from 'primereact/accordion'; const API_BASE_URL = process.env.REACT_APP_API_ADDRESS; const APP_HUB_ID = process.env.REACT_APP_HUB_ID; const Login = () => { const token = useStore().main.token(); const errorMsgs = useRef(null); const [loading, setLoading] = useState(false); const [visibleCacheFaq, setVisibleCacheFaq] = useState(false); const [isMaintenance, setIsMaintenance] = useState(false); let [searchParams] = useSearchParams(); const { origin } = window.location; const loginWithSpid = () => { if (!loading && !isMaintenance) { if (APP_HUB_ID) { window.location.replace(`${API_BASE_URL}/saml2/authenticate/loginumbria?hubId=${APP_HUB_ID}`); } else { window.location.replace(`${API_BASE_URL}/saml2/authenticate/loginumbria`); } } } const validateCallback = (data) => { //console.log('login validateCallback', data) if (data.status === 'SUCCESS') { storeSet.main.setAuthData({ token: data.data.token, userData: data.data.user }); } else { if (errorMsgs.current) { errorMsgs.current.show([ { sticky: true, severity: 'error', summary: '', detail: data.message, closable: true } ]); } } setLoading(false); } const validateError = (err) => { if (errorMsgs.current) { errorMsgs.current.show([ { sticky: true, severity: 'error', summary: '', detail: sprintf(__('%s', 'gepafin'), err.message), closable: true } ]); } setLoading(false); } const openCacheFaq = (e) => { e.preventDefault(); setVisibleCacheFaq(true); } const hideCacheFaq = () => { setVisibleCacheFaq(false); } useEffect(() => { if (isMaintenance) { if (errorMsgs.current) { errorMsgs.current.show([ { sticky: true, severity: 'info', summary: '', detail: __('Piattaforma in manutenzione', 'gepafin'), closable: false } ]); } } }, [isMaintenance]) useEffect(() => { if (!isEmpty(token)) { window.location.replace('/') } }, [token]); useEffect(() => { const temp_token = searchParams.get('temp_token'); //console.log('login temp_token', temp_token); if (!isNil(temp_token) && !isEmpty(temp_token)) { errorMsgs.current.clear(); AuthenticationService.validateExistingUser(temp_token, validateCallback, validateError); } }, [searchParams]); /*useEffect(() => { if ('t7jh5wfg9QXylNaTZkPoE' === APP_HUB_ID) { setIsMaintenance(true); } }, [])*/ return (