// Account registration. import React from 'react'; import { FormattedMessage } from 'react-intl'; import AvatarUpload from '../widgets/avatar-upload.jsx'; import CheckBox from '../widgets/checkbox.jsx'; import VisiblePassword from '../widgets/visible-password.jsx'; import LocalStorageUtil from '../lib/local-storage.js'; import { theCard } from '../lib/utils.js'; import { MAX_TITLE_LENGTH } from '../config.js'; export default class CreateAccountView extends React.PureComponent { constructor(props) { super(props); this.state = { login: '', password: '', email: '', fn: '', // full/formatted name imageDataUrl: null, errorCleared: false, saveToken: LocalStorageUtil.getObject('keep-logged-in') }; this.handleLoginChange = this.handleLoginChange.bind(this); this.handlePasswordChange = this.handlePasswordChange.bind(this); this.handleEmailChange = this.handleEmailChange.bind(this); this.handleFnChange = this.handleFnChange.bind(this); this.handleImageChanged = this.handleImageChanged.bind(this); this.handleToggleSaveToken = this.handleToggleSaveToken.bind(this); this.handleSubmit = this.handleSubmit.bind(this); } handleLoginChange(e) { this.setState({login: e.target.value}); } handlePasswordChange(password) { this.setState({password: password}); } handleEmailChange(e) { this.setState({email: e.target.value}) } handleFnChange(e) { this.setState({fn: e.target.value}); } handleImageChanged(img) { this.setState({imageDataUrl: img}); } handleToggleSaveToken() { LocalStorageUtil.setObject('keep-logged-in', !this.state.saveToken); this.setState({saveToken: !this.state.saveToken}); } handleSubmit(e) { e.preventDefault(); this.setState({errorCleared: false}); this.props.onCreateAccount( this.state.login.trim(), this.state.password.trim(), theCard(this.state.fn.trim().substring(0, MAX_TITLE_LENGTH), this.state.imageDataUrl), {'meth': 'email', 'val': this.state.email}); } render() { let submitClasses = 'primary'; if (this.props.disabled) { submitClasses += ' disabled'; } return (
{ (login_prompt) => } { (password_prompt) => }
{ (full_name_prompt) => }
{ (email_prompt) => }
{ (stay_logged_in) => }
); } };