import FormTemplate from '../../../common/FormTemplate/FormTemplate'; import { useHistory } from 'react-router-dom'; import UserForm from '../UserForm/UserForm'; import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig'; import useToast from '../../../../hooks/useToast'; import useAddUserForm from '../hooks/useAddUserForm'; import useAdminUsersApi from '../../../../hooks/api/actions/useAdminUsersApi/useAdminUsersApi'; import ConfirmUserAdded from '../ConfirmUserAdded/ConfirmUserAdded'; import { useState } from 'react'; import { scrollToTop } from '../../../common/util'; import PermissionButton from '../../../common/PermissionButton/PermissionButton'; import { ADMIN } from '../../../providers/AccessProvider/permissions'; const CreateUser = () => { const { setToastApiError } = useToast(); const { uiConfig } = useUiConfig(); const history = useHistory(); const { name, setName, email, setEmail, sendEmail, setSendEmail, rootRole, setRootRole, getAddUserPayload, validateName, validateEmail, errors, clearErrors, } = useAddUserForm(); const [showConfirm, setShowConfirm] = useState(false); const [inviteLink, setInviteLink] = useState(''); const { addUser, userLoading: loading } = useAdminUsersApi(); const handleSubmit = async (e: Event) => { e.preventDefault(); clearErrors(); const validName = validateName(); const validEmail = validateEmail(); if (validName && validEmail) { const payload = getAddUserPayload(); try { await addUser(payload) .then(res => res.json()) .then(user => { scrollToTop(); setInviteLink(user.inviteLink); setShowConfirm(true); }); } catch (e: any) { setToastApiError(e.toString()); } } }; const closeConfirm = () => { setShowConfirm(false); history.push('/admin/user-admin'); }; const formatApiCode = () => { return `curl --location --request POST '${ uiConfig.unleashUrl }/api/admin/user-admin' \\ --header 'Authorization: INSERT_API_KEY' \\ --header 'Content-Type: application/json' \\ --data-raw '${JSON.stringify(getAddUserPayload(), undefined, 2)}'`; }; const handleCancel = () => { history.goBack(); }; return ( Create user ); }; export default CreateUser;