Rift.IO OSM R1 Initial Submission
[osm/UI.git] / skyquake / plugins / launchpad / src / carousel / multicomponent.js
1
2 /*
3 *
4 * Copyright 2016 RIFT.IO Inc
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 */
19 var React = require('react');
20 var mixin = require('./ButtonEventListener.js')
21 /**
22 * Contains a set of components. Takes a list of components and renders them in lists.
23 * It's props values and a brief description below
24 * component_list: Takes a list of React components.
25 */
26 module.exports = React.createClass({
27 displayName: 'Multicomponent',
28 mixins:mixin.MIXINS,
29 propTypes: {
30 component_list: React.PropTypes.array.isRequired
31 },
32
33 /**
34 * Defines default state.
35 * component_list: Takes a list of React components.
36 */
37 getInitialState: function() {
38 return {
39 component_list: this.props.component_list
40
41 }
42 },
43
44
45 /**
46 * Renders the multicomponent Component
47 * Returns a list React components
48 * @returns {*}
49 */
50 render: function() {
51 var components = [];
52 for (var i = 0; i < this.props.component_list.length; i++) {
53 components.push(this.props.component_list[i].component);
54 }
55
56 var componentDOM = React.createElement("div", {className:this.props.className},
57 components
58 )
59 return componentDOM;
60 }
61 });