react 16 upgrade
[sdc.git] / openecomp-ui / src / sdc-app / onboarding / softwareProduct / attachments / setup / components / SelectWithFileType.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 React from 'react';
17 import SelectInput from 'nfvo-components/input/SelectInput.jsx';
18
19 const SelectWithFileType = ({ type, selected, files, onChange }) => {
20     let filteredFiledAccordingToType = files.filter(
21         file => file.label.search(type.regex) > -1
22     );
23     if (selected) {
24         filteredFiledAccordingToType = filteredFiledAccordingToType.concat({
25             label: selected,
26             value: selected
27         });
28     }
29
30     return (
31         <SelectInput
32             data-test-id={`${type.label}-list`}
33             label={type.label}
34             value={selected}
35             onChange={value =>
36                 value !== selected && onChange(value, type.label)
37             }
38             disabled={filteredFiledAccordingToType.length === 0}
39             placeholder={
40                 filteredFiledAccordingToType.length === 0 ? '' : undefined
41             }
42             clearable={true}
43             options={filteredFiledAccordingToType}
44         />
45     );
46 };
47
48 export default SelectWithFileType;