UNPKG

seven-segment-display

Version:
66 lines (60 loc) 1.53 kB
import React from "react"; class Colon extends React.Component { constructor(props) { super(props); } transform(functions) { return functions.reduce((funcs, func) => { var name = Object.keys(func)[0]; var params = Array.isArray(func[name]) ? func[name] : [func[name]]; return `${funcs} ${name}(${params.join(" ")})`; }, ""); } render() { return ( <svg viewBox={[-1, -1, 12, 20]}> <g transform={this.transform([ { translate: [this.props.x, this.props.y] } ])} style={{ fillRule: "evenodd", stroke: "#fff", strokeWidth: 0.25, strokeOpacity: 1, strokeLinecap: "butt", strokeLinejoin: "miter" }} > <circle cx={12 / 2} cy={20 / 3} r={1} fill={this.props.color} fillOpacity={ this.props.on ? this.props.onOpacity : this.props.offOpacity } /> <circle cx={12 - 12 / 2} cy={20 - 20 / 3} r={1} fill={this.props.color} fillOpacity={ this.props.on ? this.props.onOpacity : this.props.offOpacity } /> </g> </svg> ); } } Colon.defaultProps = { on: true, onOpacity: 1, offOpacity: 0.15, color: "red", x: 0, y: 0 }; export default Colon;