import PropTypes from 'prop-types'; import React from 'react'; import { reduxForm } from 'redux-form'; import { Link, browserHistory } from 'react-router'; import { Helmet } from 'react-helmet'; import { withTranslation } from 'react-i18next'; import i18n from 'i18next'; import { validateAndLoginUser } from '../actions'; import LoginForm from '../components/LoginForm'; import { validateLogin } from '../../../utils/reduxFormUtils'; import SocialAuthButton from '../components/SocialAuthButton'; import Nav from '../../../components/Nav'; import ResponsiveForm from '../components/ResponsiveForm'; class LoginView extends React.Component { constructor(props) { super(props); this.closeLoginPage = this.closeLoginPage.bind(this); this.gotoHomePage = this.gotoHomePage.bind(this); } closeLoginPage() { browserHistory.push(this.props.previousPath); } gotoHomePage() { browserHistory.push('/'); } render() { if (this.props.user.authenticated) { this.gotoHomePage(); return null; } return (
); } } function mapStateToProps(state) { return { user: state.user, previousPath: state.ide.previousPath }; } function mapDispatchToProps() { return { validateAndLoginUser }; } LoginView.propTypes = { previousPath: PropTypes.string.isRequired, user: PropTypes.shape({ authenticated: PropTypes.bool }), t: PropTypes.func.isRequired, }; LoginView.defaultProps = { user: { authenticated: false }, }; export default withTranslation()(reduxForm({ form: 'login', fields: ['email', 'password'], validate: validateLogin }, mapStateToProps, mapDispatchToProps)(LoginView));