2018-01-09 20:14:20 +02:00
|
|
|
import React, { Fragment } from 'react';
|
2018-01-08 21:08:01 +02:00
|
|
|
import { compose } from 'react-apollo';
|
|
|
|
import ReduxForm from 'declarative-redux-form';
|
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import get from 'lodash.get';
|
|
|
|
|
2018-01-09 20:14:20 +02:00
|
|
|
import { NameIcon } from 'joyent-ui-toolkit';
|
|
|
|
|
2018-01-08 21:08:01 +02:00
|
|
|
import Name from '@components/create-instance/name';
|
2018-01-09 20:14:20 +02:00
|
|
|
import Title from '@components/create-instance/title';
|
2018-01-08 21:08:01 +02:00
|
|
|
|
|
|
|
const NameContainer = ({ expanded, name, handleSubmit, handleCancel }) => (
|
2018-01-09 20:14:20 +02:00
|
|
|
<Fragment>
|
|
|
|
<Title icon={<NameIcon />}>Instance name</Title>
|
|
|
|
<ReduxForm
|
|
|
|
form="create-instance-name"
|
|
|
|
destroyOnUnmount={false}
|
|
|
|
forceUnregisterOnUnmount={true}
|
|
|
|
onSubmit={handleSubmit}
|
|
|
|
>
|
|
|
|
{props => (
|
|
|
|
<Name
|
|
|
|
{...props}
|
|
|
|
name={name}
|
|
|
|
expanded={expanded}
|
|
|
|
onCancel={handleCancel}
|
|
|
|
/>
|
|
|
|
)}
|
|
|
|
</ReduxForm>
|
|
|
|
</Fragment>
|
2018-01-08 21:08:01 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
export default compose(
|
|
|
|
connect(
|
|
|
|
(state, ownProps) => ({
|
|
|
|
...ownProps,
|
|
|
|
name: get(state, 'form.create-instance-name.values.name')
|
|
|
|
}),
|
|
|
|
(dispatch, { history }) => ({
|
|
|
|
handleSubmit: () => history.push(`/instances/~create/image`),
|
|
|
|
handleCancel: () => history.push(`/instances/~create/name`)
|
|
|
|
})
|
|
|
|
)
|
|
|
|
)(NameContainer);
|