import React from 'react'; import { Form, Input, Loader, Button, Icon } from 'UI'; import ReCAPTCHA from 'react-google-recaptcha'; import { connect } from 'react-redux'; import { requestResetPassword } from 'Duck/user'; interface Props { requestResetPassword: Function; loading?: boolean; } function ResetPasswordRequest(props: Props) { const { loading = false } = props; const recaptchaRef = React.createRef(); const [requested, setRequested] = React.useState(false); const [email, setEmail] = React.useState(''); const [error, setError] = React.useState(null); const CAPTCHA_ENABLED = window.env.CAPTCHA_ENABLED === 'true'; const CAPTCHA_SITE_KEY = window.env.CAPTCHA_SITE_KEY; const write = (e: any) => { const { name, value } = e.target; if (name === 'email') setEmail(value); }; const onSubmit = (e: any) => { e.preventDefault(); if (CAPTCHA_ENABLED && recaptchaRef.current) { recaptchaRef.current.execute(); } else if (!CAPTCHA_ENABLED) { handleSubmit(); } }; const handleSubmit = (token?: any) => { if (CAPTCHA_ENABLED && recaptchaRef.current && (token === null || token === undefined)) return; setError(null); props .requestResetPassword({ email: email.trim(), 'g-recaptcha-response': token }) .then((response: any) => { setRequested(true); if (response && response.errors && response.errors.length > 0) { setError(response.errors[0]); } else { } }); }; return (
); } export default connect((state: any) => ({ loading: state.getIn(['user', 'requestResetPassowrd', 'loading']), }), { requestResetPassword })(ResetPasswordRequest);