react-floorplanner
Version:
react-floorplanner is a React Component for plans design. Draw a 2D floorplan and navigate it in 3D mode.
45 lines (35 loc) • 1.22 kB
JSX
import React from 'react';
import PropTypes from 'prop-types';
const STYLE = {
stroke: "#0096fd",
strokeWidth: "1px"
};
const STYLE_TEXT = {
textAnchor: "middle",
fontSize: "12px",
fontFamily: "'Courier New', Courier, monospace",
pointerEvents: "none",
fontWeight: "bold",
//http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
WebkitTouchCallout: "none", /* iOS Safari */
WebkitUserSelect: "none", /* Chrome/Safari/Opera */
MozUserSelect: "none", /* Firefox */
MsUserSelect: "none", /* Internet Explorer/Edge */
userSelect: "none"
};
export default function Ruler({length, unit, transform}) {
let distanceText = `${length.toFixed(2)} ${unit}`;
return (
<g transform={transform}>
<text x={length / 2} y="-3" transform={`scale(1, -1)`} style={STYLE_TEXT}>{distanceText}</text>
<line x1="0" y1="-5" x2="0" y2="5" style={STYLE}/>
<line x1={length} y1="-5" x2={length} y2="5" style={STYLE}/>
<line x1="0" y1="0" x2={length} y2="0" style={STYLE}/>
</g>
);
}
Ruler.propTypes = {
length: PropTypes.number.isRequired,
unit: PropTypes.string.isRequired,
transform: PropTypes.string.isRequired
};