diff --git a/src/components/fields/SpecField.jsx b/src/components/fields/SpecField.jsx index 90f1fac7..7f46bf43 100644 --- a/src/components/fields/SpecField.jsx +++ b/src/components/fields/SpecField.jsx @@ -8,6 +8,7 @@ import CheckboxInput from '../inputs/CheckboxInput' import StringInput from '../inputs/StringInput' import SelectInput from '../inputs/SelectInput' import MultiButtonInput from '../inputs/MultiButtonInput' +import ArrayInput from '../inputs/ArrayInput' import capitalize from 'lodash.capitalize' @@ -41,6 +42,7 @@ export default class SpecField extends React.Component { value: React.PropTypes.oneOfType([ React.PropTypes.string, React.PropTypes.number, + React.PropTypes.array, ]), /** Override the style of the field */ style: React.PropTypes.object, @@ -91,6 +93,14 @@ export default class SpecField extends React.Component { {...commonProps} /> ) + case 'array': return ( + + ) default: return null } } diff --git a/src/components/inputs/ArrayInput.jsx b/src/components/inputs/ArrayInput.jsx new file mode 100644 index 00000000..34e61593 --- /dev/null +++ b/src/components/inputs/ArrayInput.jsx @@ -0,0 +1,37 @@ +import React from 'react' +import input from '../../config/input.js' +import StringInput from './StringInput' +import NumberInput from './StringInput' + +import { margins } from '../../config/scales.js' + +class ArrayInput extends React.Component { + static propTypes = { + value: React.PropTypes.array, + type: React.PropTypes.string, + length: React.PropTypes.number, + default: React.PropTypes.array, + style: React.PropTypes.object, + onChange: React.PropTypes.func, + } + + render() { + const values = this.props.value || this.props.default || [] + const commonStyle = { + width: '15%', + marginRight: margins[0], + } + const inputs = values.map((v, i) => { + if(this.props.type === 'number') { + return + } + return + }) + + return
+ {inputs} +
+ } +} + +export default ArrayInput