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 (
{__('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}