import React from 'react';
import { useTranslation } from 'next-i18next';
import PropTypes from 'prop-types';
import {
Modal, ModalHeader, ModalBody, ModalFooter,
} from 'reactstrap';
import { apiv3Put } from '~/client/util/apiv3-client';
import { toastSuccess, toastError } from '~/client/util/toastr';
import { useIsMailerSetup } from '~/stores/context';
class PasswordResetModal extends React.Component {
constructor(props) {
super(props);
this.state = {
temporaryPassword: [],
isPasswordResetDone: false,
sendEmail: false,
isCreateUserButtonPushed: false,
};
this.resetPassword = this.resetPassword.bind(this);
this.handleCheckBox = this.handleCheckBox.bind(this);
}
async resetPassword() {
const { t, userForPasswordResetModal } = this.props;
try {
const res = await apiv3Put('/users/reset-password', { id: userForPasswordResetModal._id });
const { newPassword, failedToSendEmail } = res.data;
if (failedToSendEmail == null) {
const msg = `Email has been sent
・${userForPasswordResetModal.email}`;
toastSuccess(msg);
}
else {
const msg = { message: `email: ${failedToSendEmail.email}
reason: ${failedToSendEmail.reason}` };
toastError(msg);
}
this.setState({ temporaryPassword: newPassword, isPasswordResetDone: true });
}
catch (err) {
toastError(err);
}
}
renderModalBodyBeforeReset() {
const { t, userForPasswordResetModal } = this.props;
return (
<>
{t('user_management.reset_password_modal.password_never_seen')}
{t('user_management.reset_password_modal.send_new_password')}
{t('user_management.reset_password_modal.target_user')}: {userForPasswordResetModal.email}
{t('user_management.reset_password_modal.password_reset_message')}
{t('user_management.reset_password_modal.target_user')}: {userForPasswordResetModal.email}
{t('user_management.reset_password_modal.new_password')}: {this.state.temporaryPassword}