UNPKG

react-floorplanner

Version:

react-floorplanner is a React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.

62 lines (51 loc) 1.43 kB
import React from 'react'; import PropTypes from 'prop-types'; import If from '../../utils/react-if'; const STYLE_LINE = { fill: "#0096fd", stroke: "#0096fd" }; const STYLE_CIRCLE = { fill: "#0096fd", stroke: "#0096fd", cursor: "ew-resize" }; const STYLE_CIRCLE2 = { fill: "none", stroke: "#0096fd", cursor: "ew-resize" }; export default function Item({layer, item, scene, catalog}) { let {x, y, rotation} = item; let renderedItem = catalog.getElement(item.type).render2D(item, layer, scene); return ( <g data-element-root data-prototype={item.prototype} data-id={item.id} data-selected={item.selected} data-layer={layer.id} style={item.selected ? {cursor: "move"} : {}} transform={`translate(${x},${y}) rotate(${rotation})`}> {renderedItem} <If condition={item.selected}> <g data-element-root data-prototype={item.prototype} data-id={item.id} data-selected={item.selected} data-layer={layer.id} data-part="rotation-anchor" > <circle cx="0" cy="150" r="10" style={STYLE_CIRCLE}/> <circle cx="0" cy="0" r="150" style={STYLE_CIRCLE2}/> </g> </If> </g> ) } Item.propTypes = { item: PropTypes.object.isRequired, layer: PropTypes.object.isRequired, scene: PropTypes.object.isRequired, catalog: PropTypes.object.isRequired };