react 16 upgrade
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / softwareProduct / components / network / SoftwareProductComponentsNICEditor.js
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 import { connect } from 'react-redux';
17 import SoftwareProductComponentsNetworkActionHelper from './SoftwareProductComponentsNetworkActionHelper.js';
18 import SoftwareProductComponentsNICEditorView from './SoftwareProductComponentsNICEditorView.jsx';
19 import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
20 import { forms } from 'sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsConstants.js';
21 import { NIC_QUESTIONNAIRE } from 'sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkConstants.js';
22 import { onboardingMethod as onboardingMethodTypes } from '../../SoftwareProductConstants.js';
23
24 export const mapStateToProps = ({ softwareProduct, currentScreen }) => {
25     let {
26         softwareProductEditor: {
27             data: currentSoftwareProduct = {},
28             isValidityData = true
29         },
30         softwareProductComponents
31     } = softwareProduct;
32     let { network: { nicEditor = {} } } = softwareProductComponents;
33     let {
34         data,
35         qdata,
36         genericFieldInfo,
37         qgenericFieldInfo,
38         dataMap,
39         formReady
40     } = nicEditor;
41     let { props: { isReadOnlyMode } } = currentScreen;
42     let { onboardingMethod } = currentSoftwareProduct;
43     let protocols = [];
44     if (
45         qdata &&
46         qdata.protocols &&
47         qdata.protocols.protocols &&
48         qdata.protocols.protocols.length
49     ) {
50         protocols = qdata.protocols.protocols;
51     }
52     let { version } = currentSoftwareProduct;
53     let isFormValid =
54         ValidationHelper.checkFormValid(genericFieldInfo) &&
55         ValidationHelper.checkFormValid(qgenericFieldInfo);
56
57     return {
58         currentSoftwareProduct,
59         isValidityData,
60         version,
61         data,
62         qdata,
63         dataMap,
64         isFormValid,
65         formReady,
66         genericFieldInfo,
67         qgenericFieldInfo,
68         isReadOnlyMode,
69         protocols,
70         isManual: onboardingMethod === onboardingMethodTypes.MANUAL
71     };
72 };
73
74 const mapActionsToProps = (
75     dispatch,
76     { softwareProductId, componentId, version }
77 ) => {
78     return {
79         onDataChanged: deltaData =>
80             ValidationHelper.dataChanged(dispatch, {
81                 deltaData,
82                 formName: forms.NIC_EDIT_FORM
83             }),
84         onSubmit: ({ data, qdata }) =>
85             SoftwareProductComponentsNetworkActionHelper.saveNICDataAndQuestionnaire(
86                 dispatch,
87                 { softwareProductId, version, componentId, data, qdata }
88             ),
89         onCancel: () =>
90             SoftwareProductComponentsNetworkActionHelper.closeNICEditor(
91                 dispatch
92             ),
93         onValidateForm: () =>
94             ValidationHelper.validateForm(dispatch, forms.NIC_EDIT_FORM),
95         onQDataChanged: deltaData =>
96             ValidationHelper.qDataChanged(dispatch, {
97                 deltaData,
98                 qName: NIC_QUESTIONNAIRE
99             })
100     };
101 };
102
103 export default connect(mapStateToProps, mapActionsToProps)(
104     SoftwareProductComponentsNICEditorView
105 );