1 import React from 'react'
2 import {connect} from 'react-redux'
3 import {ErrorBanner, TextField, PasswordField} from 'features/shared/components'
4 import actions from 'actions'
5 import styles from './Register.scss'
6 import {reduxForm} from 'redux-form'
7 import {withNamespaces} from 'react-i18next'
9 class Register extends React.Component {
12 this.submitWithErrors = this.submitWithErrors.bind(this)
15 submitWithErrors(data) {
16 return new Promise((resolve, reject) => {
17 this.props.registerKey(data)
18 .catch((err) => reject({_error: err.message}))
23 const t = this.props.t
26 fields: {keyAlias, password, repeatPassword, accountAlias},
33 <div className={styles.main}>
35 <h2 className={styles.title}>{t('init.title')}</h2>
36 <div className={styles.formWarpper}>
37 <form className={styles.form} onSubmit={handleSubmit(this.submitWithErrors)}>
39 title={t('form.accountAlias')}
40 placeholder={t('init.accountPlaceholder')}
41 fieldProps={accountAlias} />
43 title={t('form.keyAlias')}
44 placeholder={t('init.keyPlaceholder')}
45 fieldProps={keyAlias}/>
47 title={t('init.keyPassword')}
48 placeholder={t('init.passwordPlaceholder')}
49 fieldProps={password} />
51 title={t('init.repeatKeyPassword')}
52 placeholder={t('init.repeatPlaceHolder')}
53 fieldProps={repeatPassword} />
57 title={t('init.errorTitle')}
60 <button type='submit' className='btn btn-primary' disabled={submitting}>
71 const validate = (values, props) => {
75 if (!values.keyAlias) {
76 errors.keyAlias = t('key.aliasRequired')
78 if (!values.password) {
79 errors.password = t('key.passwordRequired')
80 } else if (values.password.length < 5) {
81 errors.password = ( t('key.reset.newPWarning') )
83 if (values.password !== values.repeatPassword) {
84 errors.repeatPassword = ( t('key.reset.repeatPWarning') )
86 if (!values.accountAlias) {
87 errors.accountAlias = ( t('account.new.aliasWarning') )
93 export default withNamespaces('translations')( connect(
96 registerKey: (token) => dispatch(actions.initialization.registerKey(token))
99 form: 'initDefaultPassword',
100 fields: ['keyAlias', 'password', 'repeatPassword', 'accountAlias'],