47f080739133c77cc50010dbf02fe67caf32ab7d
[sdc/sdc-workflow-designer.git] /
1 /*
2 * Copyright © 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 VersionSelect from 'features/version/versionController/views/VersionSelect';
18 import { I18n } from 'react-redux-i18n';
19 import PropTypes from 'prop-types';
20 import { isEmpty } from 'lodash';
21
22 const VersionContainer = props => {
23     let {
24         currentWorkflowVersion,
25         viewableVersions,
26         dynamicDispatcher,
27         onOverviewClick
28     } = props;
29
30     function createDisplayedVersionName() {
31         if (isEmpty(viewableVersions)) return;
32         Object.keys(viewableVersions).map((val, key) => {
33             viewableVersions[key].displayed =
34                 viewableVersions[key].name + ' ' + viewableVersions[key].state;
35         });
36         return viewableVersions;
37     }
38
39     const versionList = createDisplayedVersionName();
40
41     return (
42         <div className="version-section-wrapper">
43             <div className="version-status-container">
44                 <VersionSelect
45                     dynamicDispatcher={dynamicDispatcher}
46                     currentWorkflowVersion={currentWorkflowVersion}
47                     viewableVersions={versionList}
48                 />
49                 <span
50                     className="version-selector-more-versions"
51                     data-test-id="vc-versions-page-link"
52                     onClick={onOverviewClick}>
53                     {I18n.t('workflow.overview.viewOverview')}
54                 </span>
55             </div>
56         </div>
57     );
58 };
59
60 VersionContainer.propTypes = {
61     currentWorkflowVersion: PropTypes.string,
62     viewableVersions: PropTypes.arrayOf(Object),
63     dynamicDispatcher: PropTypes.func,
64     onOverviewClick: PropTypes.func
65 };
66
67 export default VersionContainer;