5a89239dc67890d6b00c04f53ba69dd3c193068b
[sdc.git] /
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 NameAndPurpose = ({
24     onDataChanged,
25     genericFieldInfo,
26     isReadOnlyMode,
27     name,
28     description,
29     isManual
30 }) => {
31     return (
32         <GridSection hastLastColSet>
33             <GridItem colSpan={2}>
34                 <Input
35                     label={i18n('Name')}
36                     value={name}
37                     data-test-id="nic-name"
38                     disabled={!isManual}
39                     isRequired={true}
40                     onChange={name => onDataChanged({ name })}
41                     isValid={genericFieldInfo['name'].isValid}
42                     errorText={genericFieldInfo['name'].errorText}
43                     type="text"
44                 />
45             </GridItem>
46             <GridItem colSpan={2} lastColInRow>
47                 <Input
48                     label={i18n('Purpose of NIC')}
49                     value={description}
50                     data-test-id="nic-description"
51                     onChange={description => onDataChanged({ description })}
52                     disabled={isReadOnlyMode}
53                     type="textarea"
54                 />
55             </GridItem>
56         </GridSection>
57     );
58 };
59
60 NameAndPurpose.PropTypes = {
61     name: PropTypes.string,
62     description: PropTypes.array,
63     onDataChanged: PropTypes.func,
64     isReadOnlyMode: PropTypes.bool
65 };
66
67 export default NameAndPurpose;