/* * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ import React from 'react'; export default class SelectOption extends React.Component { constructor(props){ super(props); this.state = {}; } handleOnChange = (e) => { this.props.onChange(e); } render() { let html; let defaultValue = this.props.defaultValue; let options = this.props.options && this.props.options.map(function(op, i) { let value; let label; if(typeof(op) == 'object') { value = JSON.stringify(op.value); label = op.label; } else { value = op; label = op; } return }) || []; if (this.props.initial) { options.unshift(); } html = ( ); return html; } } SelectOption.defaultProps = { /** * [options description] * @type {Array} - Expects items to contain objects with the properties 'label' and 'value' which are both string types. Hint: JSON.stringify() */ options: [], onChange: function(e) { console.log(e.target.value) console.dir(e) }, readonly: false, /** * Selected or default value ​ * @type {[type]} */ defaultValue: null, /** * True if first entry in dropdown should be blank * @type {Boolean} */ initial: false, label: null }