react-floorplanner
Version:
react-floorplanner is a React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.
87 lines (81 loc) • 2.41 kB
JSX
import React, {Component} from 'react';
import PropTypes from 'prop-types';
import FormNumberInput from '../../../style/form-number-input';
import FormTextInput from '../../../style/form-text-input';
let tableStyle = {
width: '100%'
};
let firstTdStyle = {
width: '6em'
};
let inputStyle = {
textAlign: 'left'
}
export default function ItemAttributesEditor({element, onUpdate, attributeFormData, state, ...rest}, {translator}) {
let name = attributeFormData.has('name') ? attributeFormData.get('name') : element.name;
let renderedX = attributeFormData.has('x') ? attributeFormData.get('x') : element.x;
let renderedY = attributeFormData.has('y') ? attributeFormData.get('y') : element.y;
let renderedR = attributeFormData.has('rotation') ? attributeFormData.get('rotation') : element.rotation;
return <table style={tableStyle}>
<tbody>
<tr>
<td style={firstTdStyle}>{translator.t('Name')}</td>
<td>
<FormTextInput
value={name}
onChange={event => onUpdate('name', event.target.value)}
style={inputStyle}
/>
</td>
</tr>
<tr>
<td style={firstTdStyle}>X</td>
<td>
<FormNumberInput
value={renderedX}
onChange={event => onUpdate('x', event.target.value)}
style={inputStyle}
state={state}
configs={{precision: 2}}
{...rest}
/>
</td>
</tr>
<tr>
<td style={firstTdStyle}>Y</td>
<td>
<FormNumberInput
value={renderedY}
onChange={event => onUpdate('y', event.target.value)}
style={inputStyle}
state={state}
configs={{precision: 2}}
{...rest}
/>
</td>
</tr>
<tr>
<td style={firstTdStyle}>{translator.t('Rotation')}</td>
<td>
<FormNumberInput
value={renderedR}
onChange={event => onUpdate('rotation', event.target.value)}
style={inputStyle}
state={state}
configs={{precision: 2}}
{...rest}
/>
</td>
</tr>
</tbody>
</table>;
}
ItemAttributesEditor.propTypes = {
element: PropTypes.object.isRequired,
onUpdate: PropTypes.func.isRequired,
attributeFormData: PropTypes.object.isRequired,
state: PropTypes.object.isRequired
};
ItemAttributesEditor.contextTypes = {
translator: PropTypes.object.isRequired,
};