import React from 'react'; import { useTranslation } from 'next-i18next'; import PropTypes from 'prop-types'; import Modal from 'reactstrap/es/Modal'; import ModalBody from 'reactstrap/es/ModalBody'; import ModalFooter from 'reactstrap/es/ModalFooter'; import ModalHeader from 'reactstrap/es/ModalHeader'; import { apiv3Put } from '~/client/util/apiv3-client'; import { toastError } from '~/client/util/toastr'; class PasswordResetModal extends React.Component { constructor(props) { super(props); this.state = { isPasswordResetDone: false, }; this.resetPassword = this.resetPassword.bind(this); } async resetPassword() { const { t, userForPasswordResetModal } = this.props; try { await apiv3Put('/users/reset-password', { id: userForPasswordResetModal._id }); this.setState({ isPasswordResetDone: true }); } catch (err) { toastError(err); } } renderModalBodyBeforeReset() { const { t, userForPasswordResetModal } = this.props; return ( <>

{t('user_management.reset_password_modal.reset_password_info')}
{t('user_management.reset_password_modal.reset_password_alert')}

{t('user_management.reset_password_modal.target_user')}: {userForPasswordResetModal.email}

); } returnModalBodyAfterReset() { const { t, userForPasswordResetModal } = this.props; return ( <>

{t('user_management.reset_password_modal.password_reset_message')}

{t('user_management.reset_password_modal.target_user')}: {userForPasswordResetModal.email}

); } returnModalFooterBeforeReset() { const { t } = this.props; return ( ); } returnModalFooterAfterReset() { const { t } = this.props; return ( ); } render() { const { t } = this.props; return ( {t('user_management.reset_password') } {this.state.isPasswordResetDone ? this.returnModalBodyAfterReset() : this.renderModalBodyBeforeReset()} {this.state.isPasswordResetDone ? this.returnModalFooterAfterReset() : this.returnModalFooterBeforeReset()} ); } } const PasswordResetModalWrapperFC = (props) => { const { t } = useTranslation('admin'); return ; }; /** * Wrapper component for using unstated */ PasswordResetModal.propTypes = { t: PropTypes.func.isRequired, // i18next isOpen: PropTypes.bool.isRequired, onClose: PropTypes.func.isRequired, userForPasswordResetModal: PropTypes.object, }; export default PasswordResetModalWrapperFC;