import type { FC } from 'react'; import React, { useState } from 'react'; import { useTranslation } from 'next-i18next'; import Link from 'next/link'; import { apiv3Put } from '~/client/util/apiv3-client'; import { toastSuccess, toastError } from '~/client/util/toastr'; import loggerFactory from '~/utils/logger'; const logger = loggerFactory('growi:passwordReset'); const PasswordResetExecutionForm: FC = () => { const { t } = useTranslation(['translation', 'commons']); const [newPassword, setNewPassword] = useState(''); const [newPasswordConfirm, setNewPasswordConfirm] = useState(''); const [validationErrorI18n, setValidationErrorI18n] = useState(''); // get token from URL const pathname = window.location.pathname.split('/'); const token = pathname[2]; const changePassword = async(e) => { e.preventDefault(); if (newPassword === '' || newPasswordConfirm === '') { setValidationErrorI18n('personal_settings.password_is_not_set'); return; } if (newPassword !== newPasswordConfirm) { setValidationErrorI18n('forgot_password.password_and_confirm_password_does_not_match'); return; } try { await apiv3Put('/forgot-password', { token, newPassword, newPasswordConfirm, }); setValidationErrorI18n(''); toastSuccess(t('toaster.update_successed', { target: t('Password'), ns: 'commons' })); } catch (err) { toastError(err); logger.error(err); } }; return (
); }; export default PasswordResetExecutionForm;