import React, { PropTypes } from 'react'; import { reduxForm } from 'redux-form'; import classNames from 'classnames'; import { browserHistory } from 'react-router'; import InlineSVG from 'react-inlinesvg'; import { bindActionCreators } from 'redux'; import NewPasswordForm from '../components/NewPasswordForm'; import * as UserActions from '../actions'; const exitUrl = require('../../../images/exit.svg'); const logoUrl = require('../../../images/p5js-logo.svg'); class NewPasswordView extends React.Component { constructor(props) { super(props); this.gotoHomePage = this.gotoHomePage.bind(this); } componentDidMount() { // need to check if this is a valid token this.props.validateResetPasswordToken(this.props.params.reset_password_token); } gotoHomePage() { browserHistory.push('/'); } render() { const newPasswordClass = classNames({ 'new-password': true, 'new-password--invalid': this.props.user.resetPasswordInvalid, 'form-container': true }); return (

Set a New Password

The password reset token is invalid or has expired.

); } } NewPasswordView.propTypes = { params: PropTypes.shape({ reset_password_token: PropTypes.string, }).isRequired, validateResetPasswordToken: PropTypes.func.isRequired, user: PropTypes.shape({ resetPasswordInvalid: PropTypes.bool }).isRequired }; function validate(formProps) { const errors = {}; if (!formProps.password) { errors.password = 'Please enter a password'; } if (!formProps.confirmPassword) { errors.confirmPassword = 'Please enter a password confirmation'; } if (formProps.password !== formProps.confirmPassword) { errors.password = 'Passwords must match'; } return errors; } function mapStateToProps(state) { return { user: state.user }; } function mapDispatchToProps(dispatch) { return bindActionCreators(UserActions, dispatch); } export default reduxForm({ form: 'new-password', fields: ['password', 'confirmPassword'], validate }, mapStateToProps, mapDispatchToProps)(NewPasswordView);