ResetPasswordPopup.jsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // components
  2. import Popup from '@components/Popup';
  3. import {toast} from 'react-toastify';
  4. // hooks
  5. import {useForm} from 'react-hook-form';
  6. // utils
  7. import classNames from 'classnames';
  8. import PropTypes from 'prop-types';
  9. const ResetPasswordPopup = ({open, onClose}) => {
  10. const {register, handleSubmit, formState: {errors}, reset} = useForm();
  11. const handleClose = () => {
  12. reset();
  13. onClose();
  14. }
  15. const onSubmit = data => {
  16. toast.info(`New password was sent to ${data.email}`,{toastId:"onSubmit"});
  17. handleClose();
  18. }
  19. return (
  20. <Popup open={open} onClose={handleClose}>
  21. <div className="d-flex flex-column g-20">
  22. <div className="d-flex flex-column g-10">
  23. <h2>Reset Password</h2>
  24. <p>
  25. Enter your email address below and we'll send you a link to reset your password.
  26. </p>
  27. </div>
  28. <div className="d-flex flex-column g-16">
  29. <form className="d-flex g-10" onSubmit={handleSubmit(onSubmit)}>
  30. <input className={classNames('field', {'field--error': errors.email})}
  31. type="text"
  32. placeholder="example@domain.com"
  33. {...register('email', {required: true, pattern: /^\S+@\S+$/i})}/>
  34. <button className="btn">Send</button>
  35. </form>
  36. <p className="text-12">
  37. If you don't receive an email within a few minutes, please check your spam folder.
  38. </p>
  39. </div>
  40. </div>
  41. </Popup>
  42. )
  43. }
  44. ResetPasswordPopup.propTypes = {
  45. open: PropTypes.bool.isRequired,
  46. onClose: PropTypes.func.isRequired
  47. }
  48. export default ResetPasswordPopup