import React from 'react'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import { Redirect } from 'react-router-dom'; import { resetPassword } from 'soapbox/actions/security'; import snackbar from 'soapbox/actions/snackbar'; import { Button, Form, FormActions, FormGroup, Input } from '../../../components/ui'; const messages = defineMessages({ nicknameOrEmail: { id: 'password_reset.fields.username_placeholder', defaultMessage: 'Email or username' }, confirmation: { id: 'password_reset.confirmation', defaultMessage: 'Check your email for confirmation.' }, }); export default @connect() @injectIntl class PasswordReset extends ImmutablePureComponent { state = { isLoading: false, success: false, } handleSubmit = e => { const { dispatch, intl } = this.props; const nicknameOrEmail = e.target.nickname_or_email.value; this.setState({ isLoading: true }); dispatch(resetPassword(nicknameOrEmail)).then(() => { this.setState({ isLoading: false, success: true }); dispatch(snackbar.info(intl.formatMessage(messages.confirmation))); }).catch(error => { this.setState({ isLoading: false }); }); } render() { const { intl } = this.props; if (this.state.success) return ; return (

{intl.formatMessage({ id: 'password_reset.header', defaultMessage: 'Reset Password' })}

); } }