lost-sia
Version:
Single Image Annotation Tool
73 lines (63 loc) • 1.35 kB
JSX
import React, { Component } from "react";
class InfSelectionArea extends Component {
constructor(props) {
super(props);
this.state = {
selAreaCss: "sel-area-off",
};
}
componentDidMount() {
if (this.props.enable) {
this.enableSelArea();
} else {
this.disableSelArea();
}
}
componentDidUpdate() {
if (this.props.enable) {
this.enableSelArea();
} else {
this.disableSelArea();
}
}
onMouseMove(e) {
if (this.props.onMouseMove) {
this.props.onMouseMove(e);
}
}
onMouseUp(e) {
if (this.props.onMouseUp) {
this.props.onMouseUp(e);
}
}
enableSelArea() {
if (this.state.selAreaCss !== "sel-area-on") {
this.setState({ selAreaCss: "sel-area-on" });
}
}
disableSelArea() {
if (this.state.selAreaCss !== "sel-area-off") {
this.setState({ selAreaCss: "sel-area-off" });
}
}
/*************
* RENDERING *
**************/
render() {
return (
<circle
cx={this.props.svg.width / 2}
cy={this.props.svg.height / 2}
r={"100%"}
className={this.state.selAreaCss}
onMouseMove={(e) => {
this.onMouseMove(e);
}}
onMouseUp={(e) => {
this.onMouseUp(e);
}}
/>
);
}
}
export default InfSelectionArea;