diff --git a/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx.ejs b/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx.ejs index d966a0432e7..d8fdc4078c3 100644 --- a/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx.ejs +++ b/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx.ejs @@ -17,21 +17,21 @@ limitations under the License. -%> import React, { useState, useEffect } from 'react'; -import { Col, Row, Button } from 'reactstrap'; -import { Translate, translate, ValidatedField, ValidatedForm } from 'react-jhipster'; -import { useSearchParams } from 'react-router-dom'; +import { Col, Row, Button, Form } from 'reactstrap'; +import { Translate, translate, ValidatedTextInput } from 'react-jhipster'; import { toast } from 'react-toastify'; - +import { useSearchParams } from 'react-router-dom'; import { handlePasswordResetFinish, reset } from '../password-reset.reducer'; import PasswordStrengthBar from 'app/shared/layout/password/password-strength-bar'; import { useAppDispatch, useAppSelector } from 'app/config/store'; +import { useForm } from 'react-hook-form'; export const PasswordResetFinishPage = () => { const dispatch = useAppDispatch(); const [searchParams] = useSearchParams(); const key = searchParams.get('key'); - + const { register, handleSubmit, setValue, formState: { errors, touchedFields }} = useForm(); const [password, setPassword] = useState(''); useEffect( @@ -40,60 +40,67 @@ export const PasswordResetFinishPage = () => { }, [] ); + const successMessage = useAppSelector(state => state.passwordReset.successMessage); + + useEffect(() => { + if (successMessage) { + toast.success(translate(successMessage)); + } + }, [successMessage]); - const handleValidSubmit = ({ newPassword }) => dispatch(handlePasswordResetFinish({ key, newPassword })); + const handleValidSubmit = data => { + dispatch(handlePasswordResetFinish({ key: data.key, newPassword: data.newPassword })); + } - const updatePassword = event => setPassword(event.target.value); + const updatePassword = event => { + setPassword(event.target.value); + setValue('newPassword', event.target.value, { shouldValidate: true, shouldDirty: true, shouldTouch: true }); + } const getResetForm = () => { return ( - - + - v === password || translate('global.messages.error.dontmatch'), - }} - data-cy="confirmResetPassword" + } } + labelPlaceholderKey="global.form.confirmpassword.label" + inputPlaceholderKey="global.form.confirmpassword.placeholder" + type="password" /> - + ); }; - const successMessage = useAppSelector(state => state.passwordReset.successMessage); - - useEffect(() => { - if (successMessage) { -<%_ if (enableTranslation) { _%> - toast.success(translate(successMessage)); -<%_ } else { _%> - toast.success(successMessage); -<%_ } _%> - } - }, [successMessage]); - return (
diff --git a/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/init/password-reset-init.tsx.ejs b/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/init/password-reset-init.tsx.ejs index 892abfeccd6..d0e0e307f87 100644 --- a/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/init/password-reset-init.tsx.ejs +++ b/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/init/password-reset-init.tsx.ejs @@ -17,15 +17,17 @@ limitations under the License. -%> import React, { useEffect } from 'react'; -import { Translate, translate, ValidatedField, ValidatedForm, isEmail } from 'react-jhipster'; -import { Button, Alert, Col, Row } from 'reactstrap'; +import { Translate, translate, ValidatedTextInput, isEmail } from 'react-jhipster'; +import { Button, Alert, Col, Row, Form } from 'reactstrap'; import { toast } from 'react-toastify'; import { handlePasswordResetInit, reset } from '../password-reset.reducer'; import { useAppDispatch, useAppSelector } from 'app/config/store'; +import { useForm } from 'react-hook-form'; export const PasswordResetInit = () => { const dispatch = useAppDispatch(); + const { register, handleSubmit, setValue, formState: { errors, touchedFields }} = useForm(); useEffect( () => () => { @@ -34,9 +36,9 @@ export const PasswordResetInit = () => { [] ); - const handleValidSubmit = ({ email }) => { - dispatch(handlePasswordResetInit(email)); - }; + const handleValidSubmit = data => { + dispatch(handlePasswordResetInit(data.email)); + } const successMessage = useAppSelector(state => state.passwordReset.successMessage); @@ -50,38 +52,44 @@ export const PasswordResetInit = () => { } }, [successMessage]); - return ( -
- - -

Reset your password

- -

Enter the email address you used to register

-
- - isEmail(v) || translate('global.messages.validate.email.invalid'), - }} - data-cy="emailResetPassword" - /> - - - -
-
- ); -} + return ( +
+ + +

+ Reset your password +

+ +

+ Enter the email address you used to register +

+
+ {/* eslint-disable-next-line @typescript-eslint/no-misused-promises */} +
+ isEmail(v) || translate('global.messages.validate.email.invalid'), + }} + labelPlaceholderKey="global.form.email.label" + inputPlaceholderKey="global.form.email.placeholder" + type="email" + /> + + + +
+
+ ); +}; export default PasswordResetInit; diff --git a/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs b/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs index d273ab6aadc..beafd5ef79d 100644 --- a/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +++ b/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs @@ -18,7 +18,7 @@ -%> import React, { useState, useEffect } from 'react'; import { Translate, translate, ValidatedTextInput } from 'react-jhipster'; -import { Button, Col, Form, FormFeedback, FormGroup, Input, Label, Row } from 'reactstrap'; +import { Button, Col, Form, Row } from 'reactstrap'; import { toast } from 'react-toastify'; import { useAppDispatch, useAppSelector } from 'app/config/store'; diff --git a/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs b/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs index defa12f181a..aec0dc7db9b 100644 --- a/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +++ b/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs @@ -77,7 +77,7 @@ export const confirmPasswordSelector = '[data-cy="confirmPassword"]'; export const submitPasswordSelector = '[data-cy="submit"]'; // Reset Password -export const emailResetPasswordSelector = '[data-cy="emailResetPassword"]'; +export const emailResetPasswordSelector = '[data-cy="email"]'; export const submitInitResetPasswordSelector = '[data-cy="submit"]'; <%_ } _%>