zooid-ui-bluprint-config-builder
Version:
76 lines (64 loc) • 1.88 kB
JavaScript
import React, { PropTypes } from 'react'
import _ from 'lodash'
import Input from 'zooid-input'
import FormField from 'zooid-form-field'
import FormLabel from 'zooid-form-label'
const DeviceSelectorPropertyName = ({configureProperty, shareDevice, onUpdate}) => {
if (shareDevice) return null
return (
<Input
name="configureProperty"
label="Config Name"
description="The display name of the configurable property"
value={configureProperty}
placeholder="Enter the config name for this device"
onChange={onUpdate}
/>
)
}
DeviceSelectorPropertyName.propTypes = {
shareDevice: PropTypes.bool,
configureProperty: PropTypes.string,
onUpdate: PropTypes.func,
}
DeviceSelectorPropertyName.defaultProps = {
onUpdate: _.noop,
}
const DeviceSelector = ({shareDevice, nodeId, configureProperty, onUpdate}) => {
const onConfigPropertyUpdate = (event) => {
onUpdate({shareDevice, nodeId, configureProperty: event.target.value})
}
const onShareDeviceUpdate = (event) => {
onUpdate({shareDevice: event.target.checked, nodeId, configureProperty})
}
return (
<div>
<FormField>
<FormLabel name="shareDevice">
<input
type="checkbox"
name="shareDevice"
checked={shareDevice}
onChange={onShareDeviceUpdate}
/>
Share the device currently in the flow?
</FormLabel>
</FormField>
<DeviceSelectorPropertyName
shareDevice={shareDevice}
configureProperty={configureProperty}
onUpdate={onConfigPropertyUpdate}
/>
</div>
)
}
DeviceSelector.propTypes = {
nodeId: PropTypes.string.isRequired,
shareDevice: PropTypes.bool,
configureProperty: PropTypes.string,
onUpdate: PropTypes.func,
}
DeviceSelector.defaultProps = {
onUpdate: _.noop,
}
export default DeviceSelector