update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b third try
[osm/UI.git] / skyquake / plugins / launchpad / src / instantiate / instantiateSelectDescriptorPanel.jsx
1 /*
2  *
3  *   Copyright 2016 RIFT.IO Inc
4  *
5  *   Licensed under the Apache License, Version 2.0 (the "License");
6  *   you may not use this file except in compliance with the License.
7  *   You may obtain a copy of the License at
8  *
9  *       http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *   Unless required by applicable law or agreed to in writing, software
12  *   distributed under the License is distributed on an "AS IS" BASIS,
13  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *   See the License for the specific language governing permissions and
15  *   limitations under the License.
16  *
17  */
18 import CatalogCard from './catalogCard.jsx'
19 import Panel from 'widgets/panel/panel.jsx'
20 import React, {Component} from 'react';
21 import './instantiateSelectDescriptorPanel.scss';
22 export default class InstantiateSelectDescriptorPanel extends Component {
23     constructor(props) {
24         super(props)
25     }
26     render() {
27         let self = this;
28         let {catalog, onPreviewDescriptor, onSelectDescriptor, selectedDescriptorID, previewing, isPreviewing, closeCard, openDescriptor, ...props} = self.props;
29         return (
30             <Panel title="Select Descriptor"  className={"InstantiateSelectDescriptorPanel" + (isPreviewing ? " InstantiateSelectDescriptorPanel--previewmode" : '')}>
31             {
32                 catalog.descriptors && (catalog.descriptors.length > 0) ?
33                     catalog.descriptors.map(function(descriptor, i) {
34                         let isSelected = (descriptor.id === selectedDescriptorID);
35                         return (
36                             <CatalogCard
37                                 key={i}
38                                 isActive={isPreviewing && isSelected}
39                                 isSelected={isSelected}
40                                 descriptor={descriptor}
41                                 onClick={onSelectDescriptor.bind(null, descriptor)}
42                                 onDoubleClick={openDescriptor.bind(null, descriptor)}
43                                 onPreviewDescriptor={onPreviewDescriptor}
44                                 onCloseCard={closeCard}
45                             />
46                         )
47                     })
48                     : <div className="InstantiateSelectDescriptorPanel-message"><h2>No Descriptors Onboarded</h2></div>
49             }
50             </Panel>
51         )
52     }
53 }
54
55 InstantiateSelectDescriptorPanel.defaultProps = {
56     catalog: {},
57     onSelectDescriptor: function(descriptor) {
58         return (e) => {
59             console.log('Selecting NSD: ' + descriptor.id)
60         }
61     },
62     onPreviewDescriptor: function(descriptor) {
63         return (e) => {
64             console.log('Previewing NSD: ' + descriptor.id)
65         }
66     }
67 }