import React, { useState, useEffect, useRef } from 'react'; import { __ } from '@wordpress/i18n'; import { isEmpty, isNil } from 'ramda'; import { klona } from 'klona'; // store import { storeSet } from '../../store'; // service import UserService from '../../service/user-service'; // tools import set404FromErrorResponse from '../../helpers/set404FromErrorResponse'; import { isEmail } from '../../helpers/validators'; // components import AllUsersTable from './components/AllUsersTable'; import { Button } from 'primereact/button'; import { InputText } from 'primereact/inputtext'; import { Dropdown } from 'primereact/dropdown'; import { Dialog } from 'primereact/dialog'; import { classNames } from 'primereact/utils'; import { Toast } from 'primereact/toast'; const APP_HUB_ID = process.env.REACT_APP_HUB_ID; const Users = () => { const [loading, setLoading] = useState(false); const [isVisibleEditDialog, setIsVisibleEditDialog] = useState(false); const [newUserData, setNewUserData] = useState({ firstName: '', lastName: '', email: '', phoneNumber: '', password: '', confPassword: '', roleId: 0 }); const [roles, setRoles] = useState([]); const toast = useRef(null); const onCreateNewUser = () => { setIsVisibleEditDialog(true); } const headerEditDialog = () => { return {__('Aggiungi utente', 'gepafin')} } const hideEditDialog = () => { setIsVisibleEditDialog(false); setNewUserData({ firstName: '', lastName: '', email: '', phoneNumber: '', password: '', confPassword: '', roleId: 0 }); } const saveEditDialog = () => { const emptyValues = Object.values(newUserData).filter(v => isEmpty(v)); if (isEmpty(emptyValues) && newUserData.password === newUserData.confPassword && !loading) { setLoading(true); const body = { ...newUserData, hubUuid: APP_HUB_ID } UserService.createUser(body, createUserCallback, errCreateUserCallback); } } const createUserCallback = (data) => { if (data.status === 'SUCCESS') { } setLoading(false); } const errCreateUserCallback = (data) => { setLoading(false); if (toast.current) { toast.current.show({ severity: 'error', summary: '', detail: data.message }); } set404FromErrorResponse(data); } const onChangeEditItem = (value, key) => { const userData = klona(newUserData); userData[key] = value; setNewUserData(userData); } const footerEditDialog = () => { return