import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { Modal, ModalBody, ModalFooter, Button, Form, Alert } from 'reactstrap'; import toaster from '../../toast'; import PasswordInput from './password-input'; import { userAPI } from '../../../utils/user-api'; import { gettext } from '../../../utils/constants'; import { Utils, validatePassword } from '../../../utils/utils'; import SeahubModalHeader from '@/components/common/seahub-modal-header'; const propTypes = { toggle: PropTypes.func, }; const UserSetPassword = ({ toggle }) => { const [password, setPassword] = useState(''); const [confirmedPassword, setConfirmedPassword] = useState(''); const [errorMessage, setErrorMessage] = useState(''); const [canSubmit, setCanSubmit] = useState(true); const submitPassword = () => { if (!password) { setErrorMessage(gettext('Password cannot be blank')); return; } if (!confirmedPassword) { setErrorMessage(gettext('Please enter the password again')); return; } if (password !== confirmedPassword) { setErrorMessage(gettext('Passwords don\'t match')); return; } if (!validatePassword(password)) { setErrorMessage(gettext('Password strength should be strong or very strong')); return; } setErrorMessage(''); setCanSubmit(false); userAPI.resetPassword(null, password).then(() => { toaster.success(gettext('Password set')); location.reload(); toggle(); }).catch(error => { const errMessage = Utils.getErrorMsg(error); toaster.danger(errMessage); setCanSubmit(true); }); }; return ( {gettext('Set password')}
{errorMessage && ( {errorMessage} )}
); }; UserSetPassword.propTypes = propTypes; export default UserSetPassword;