Add collaboration feature
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / softwareProduct / components / network / nicEditorComponents / PacketsBytes.jsx
1 /*!
2  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
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
13  * or implied. See the License for the specific language governing
14  * permissions and limitations under the License.
15  */
16 import React from 'react';
17 import PropTypes from 'prop-types';
18 import i18n from 'nfvo-utils/i18n/i18n.js';
19 import Input from 'nfvo-components/input/validation/Input.jsx';
20 import GridSection from 'nfvo-components/grid/GridSection.jsx';
21 import GridItem from 'nfvo-components/grid/GridItem.jsx';
22
23 const PointerInput = ({label, value, onQDataChanged, qgenericFieldInfo, dataMap, lastColInRow}) => {
24         return (
25                 <GridItem lastColInRow={lastColInRow}>
26                         <Input
27                                 label={i18n(label)}
28                                 type='number'
29                                 data-test-id={`${value}`}
30                                 isValid={qgenericFieldInfo[value].isValid}
31                                 errorText={qgenericFieldInfo[value].errorText}
32                                 value={dataMap[value]}
33                                 onChange={val => onQDataChanged({[value]: val})} />
34                 </GridItem>
35         );
36 };
37
38 PointerInput.PropTypes = {
39         label: PropTypes.string,
40         value: PropTypes.string
41 };
42
43 const PacketsBytes = ({title, pointers = [], qgenericFieldInfo, dataMap, onQDataChanged}) => {
44         return(
45                 <GridSection title={title} hasLastColSet>
46                                 <GridItem colSpan={2}>
47                                         <div className='part-title-small packets'>{i18n('Packets')}</div>
48                                 </GridItem>
49                                 <GridItem colSpan={2} lastColInRow>
50                                         <div className='part-title-small bytes'>{i18n('Bytes')}</div>
51                                 </GridItem>
52                                 {pointers.map((pointer, i) => {return (<PointerInput key={i} label={pointer.label} value={pointer.value}
53                                         qgenericFieldInfo={qgenericFieldInfo} onQDataChanged={onQDataChanged} dataMap={dataMap} lastColInRow={i === 3} />);})}
54                 </GridSection>
55         );
56 };
57
58 PacketsBytes.PropTypes = {
59         title: PropTypes.string,
60         pointers: PropTypes.array,
61         onQDataChanged:  PropTypes.function,
62         dataMap: PropTypes.object,
63         qgenericFieldInfo: PropTypes.object
64 };
65
66 export default PacketsBytes;