-
Notifications
You must be signed in to change notification settings - Fork 42
/
create-nuage-cloud-subnet-form.jsx
53 lines (47 loc) · 1.52 KB
/
create-nuage-cloud-subnet-form.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import NuageCloudSubnetForm from './forms/nuage-cloud-subnet-form'
import { handleApiError, createSubnet, fetchRouter } from '../utils/api.js'
class CreateNuageCloudSubnetForm extends React.Component {
constructor(props) {
super(props);
this.handleFormStateUpdate = this.handleFormStateUpdate.bind(this);
this.state = {
loading: true
}
}
componentDidMount() {
this.props.dispatch({
type: 'FormButtons.init',
payload: {
newRecord: true,
pristine: true,
addClicked: () => createSubnet(this.state.values, this.state.emsId, this.state.routerRef)
}
});
fetchRouter(ManageIQ.record.recordId).then(router => {
this.setState({emsId: router.ems_id, routerRef: router.ems_ref, loading: false});
}, handleApiError(this));
}
handleFormStateUpdate(formState) {
this.props.dispatch({ type: 'FormButtons.saveable', payload: formState.valid });
this.props.dispatch({ type: 'FormButtons.pristine', payload: formState.pristine });
this.setState({ values: formState.values });
}
render() {
if(this.state.error) {
return <p>{this.state.error}</p>
}
return (
<NuageCloudSubnetForm
updateFormState={this.handleFormStateUpdate}
loading={this.state.loading}
/>
);
}
}
CreateNuageCloudSubnetForm.propTypes = {
dispatch: PropTypes.func.isRequired,
};
export default connect()(CreateNuageCloudSubnetForm);