import React, { useState, useEffect, useRef } from 'react'; import { __ } from '@wordpress/i18n'; import { isEmpty, pathOr } from 'ramda'; import { useNavigate, useParams } from 'react-router-dom'; import NumberFlow from '@number-flow/react'; // service import UserService from '../../service/user-service'; // tools import set404FromErrorResponse from '../../helpers/set404FromErrorResponse'; import getDateFromISOstring from '../../helpers/getDateFromISOstring'; // components import { Button } from 'primereact/button'; import { Toast } from 'primereact/toast'; import { Dropdown } from 'primereact/dropdown'; const UserActivity = () => { const [loading, setLoading] = useState(false); const toast = useRef(null); const navigate = useNavigate(); const { id } = useParams(); const [user, setUser] = useState({}); const [roles, setRoles] = useState([]); const [chosenRole, setChosenRole] = useState(0); const goBack = () => { navigate(`/utenti`); } const getUserCallback = (resp) => { if (resp.status === 'SUCCESS') { setUser(resp.data) setChosenRole(resp.data.role?.id); } setLoading(false); } const errGetUserCallback = (resp) => { set404FromErrorResponse(resp); setLoading(false); } const getRolesCallback = (resp) => { if (resp.status === 'SUCCESS') { setRoles(resp.data) } setLoading(false); } const errGetRolesCallback = (resp) => { set404FromErrorResponse(resp); setLoading(false); } const getStatValue = (key, fallback = 0) => { return pathOr(fallback, [key], {}); } const handleRoleUpdate = () => { if (user.role?.id !== chosenRole) { setLoading(true); UserService.updateUser(user.id, {roleId: chosenRole}, updateRoleCallback, errUpdateRoleCallback) } } const updateRoleCallback = (resp) => { if (resp.status === 'SUCCESS') { setUser(resp.data) } setLoading(false); } const errUpdateRoleCallback = (resp) => { set404FromErrorResponse(resp); setLoading(false); } useEffect(() => { if (id && !isEmpty(id)) { setLoading(true); UserService.getUser(id, getUserCallback, errGetUserCallback); UserService.getRoles(getRolesCallback, errGetRolesCallback); } }, [id]) return (

{__('Controllo attività utenti', 'gepafin')}

{__('Nome utente', 'gepafin')} {`${user.firstName} ${user.lastName}`}

{__('Email', 'gepafin')} {user.email}

{__('Ruolo', 'gepafin')} {user.role?.roleName}

{__('Data registrazione', 'gepafin')} {getDateFromISOstring(user.createdDate)}

{__('Ultimo accesso', 'gepafin')} {getDateFromISOstring(user.lastLogin)}

{__('Stato account', 'gepafin')} {user.status}

{['ROLE_PRE_INSTRUCTOR', 'ROLE_INSTRUCTOR_MANAGER'].includes(user.role?.roleType) ? <>

{__('Cambia ruolo', 'gepafin')}

setChosenRole(e.value)} options={roles.filter(o => [3, 5].includes(o.id)).map(o => ({ label: o.roleName, value: o.id }))} optionLabel="label" placeholder={__('Seleziona ruolo', 'gepafin')}/>
: null}
{/*

{__('Statistiche attività', 'gepafin')}

{__('Login totali', 'gepafin')} {}
{__('Bandi gestiti', 'gepafin')} {}
{__('Domande processate', 'gepafin')} {}
*/}
) } export default UserActivity;