1 import React from 'react'
2 import { BaseNew, FormContainer, FormSection, JsonField, KeyConfiguration, TextField } from 'features/shared/components'
3 import { reduxForm } from 'redux-form'
5 class Form extends React.Component {
9 this.submitWithErrors = this.submitWithErrors.bind(this)
12 submitWithErrors(data) {
13 return new Promise((resolve, reject) => {
14 this.props.submitForm(data)
15 .catch((err) => reject({_error: err}))
21 fields: { alias, tags, definition, xpubs, quorum },
26 const lang = this.props.lang
31 label= { lang === 'zh' ? '新建资产' : 'New asset' }
32 onSubmit={handleSubmit(this.submitWithErrors)}
33 submitting={submitting}
36 <FormSection title={ lang === 'zh' ? '资产信息' : 'Asset Information'}>
37 <TextField title='Alias' placeholder='Alias' fieldProps={alias} autoFocus={true} />
38 <JsonField title={ lang === 'zh' ? '定义' : 'Definition' } fieldProps={definition} lang={lang}/>
41 <FormSection title={ lang === 'zh' ? '密钥和签名' :'Keys and Signing' }>
45 quorumHint='Number of signatures required to issue' />
53 const validate = values => {
56 const jsonFields = ['definition']
57 jsonFields.forEach(key => {
58 const fieldError = JsonField.validator(values[key])
59 if (fieldError) { errors[key] = fieldError }
62 if (!values.alias) { errors.alias = 'Asset alias is required' }
74 export default BaseNew.connect(
75 BaseNew.mapStateToProps('asset'),
76 BaseNew.mapDispatchToProps('asset'),
82 definition: '{\n "name": "", \n "symobol": "",\n "decimals": 8,\n "description": {}\n}',