react-admin-ui
Version:
React Admin Panel based on material-ui interface Edit
63 lines (61 loc) • 2.54 kB
JSX
import React from 'react'
import {getEntity, getPrefix} from '../lib'
import {Divider, FlatButton} from 'material-ui'
import Back from 'material-ui/svg-icons/action/assignment-return'
import EntityForm from '../components/Sections/Content/EntityForm'
import qs from 'qs'
import {Link} from 'react-isomorphic-tools'
import {handleCreate, handleCreateSuccess, handleCreateFail} from '../actions'
import {HeaderWrapper} from '../components/Sections'
export default class Create extends React.Component {
render() {
const entity = getEntity(this.props.match.params.name)
const {
actions:{
create:{
initialValues = {},
fields,
component: CustomForm,
validate
}
}
} = entity
const prefix = getPrefix()
const query = qs.parse(this.props.location.search, {ignoreQueryPrefix: true})
return (
<div>
<HeaderWrapper>
<span className='title'>Create item of {entity.title || entity.name}</span>
<FlatButton
icon={<Back/>}
label='Back to list'
containerElement={<Link to={{pathname: `${prefix}/${entity.name}`, query}}/>}
/>
</HeaderWrapper>
<Divider/>
{CustomForm ?
<CustomForm initialValues={initialValues}
entity={entity}
form={entity.name}
query={query}
params={this.props.match.params}
prefix={prefix}
/> :
<EntityForm onSubmit={handleCreate}
onSubmitSuccess={handleCreateSuccess}
onSubmitFail={handleCreateFail}
initialValues={initialValues}
entity={entity}
form={entity.name}
submitLabel='Create'
query={query}
params={this.props.match.params}
prefix={prefix}
fields={fields}
validate={validate}
/>
}
</div>
)
}
}