'use strict'; import React from 'react'; import GlobalNotificationModel from '../models/global_notification_model'; import GlobalNotificationActions from '../actions/global_notification_actions'; import Form from './ascribe_forms/form'; import Property from './ascribe_forms/property'; import AscribeSpinner from './ascribe_spinner'; import withContext from './context/with_context'; import { locationShape, routerShape } from './prop_types'; import { setDocumentTitle } from '../utils/dom'; import { getLangText } from '../utils/lang'; import { resolveUrl } from '../utils/url_resolver'; let PasswordResetContainer = React.createClass({ propTypes: { // Injected through HOCs location: locationShape.isRequired, }, getInitialState() { return { isRequested: false }; }, handleRequestSuccess(email) { this.setState({ isRequested: !!email }); }, render() { const { email: emailQuery, token: tokenQuery } = this.props.location.query; const { isRequested } = this.state; if (emailQuery && tokenQuery) { return ( ); } else if (!isRequested) { return ( ); } else { return (
{getLangText('If your email address exists in our database, you will receive a password recovery link in a few minutes.')}
); } } }); let PasswordRequestResetForm = React.createClass({ propTypes: { handleRequestSuccess: React.PropTypes.func }, handleSuccess() { const notificationText = getLangText('If your email address exists in our database, you will receive a password recovery link in a few minutes.'); const notification = new GlobalNotificationModel(notificationText, 'success', 50000); GlobalNotificationActions.appendGlobalNotification(notification); this.props.handleRequestSuccess(this.refs.form.refs.email.state.value); }, render() { setDocumentTitle(getLangText('Reset your password')); return (
{getLangText('Reset your password')} } spinner={ }>

{getLangText('Reset your password')}


); } }); let PasswordResetForm = withContext(React.createClass({ propTypes: { email: React.PropTypes.string, token: React.PropTypes.string, // Injected through HOCs router: routerShape.isRequired // eslint-disable-line react/sort-prop-types }, getFormData() { return { email: this.props.email, token: this.props.token }; }, handleSuccess() { this.props.router.push('/collection'); const notification = new GlobalNotificationModel(getLangText('Password successfully updated'), 'success', 10000); GlobalNotificationActions.appendGlobalNotification(notification); }, render() { return (
{getLangText('Reset your password')} } spinner={ }>

{getLangText('Reset the password for')} {this.props.email}


); } }), 'router'); export default withContext(PasswordResetContainer, 'location');