setSelectedRectId(rect.id)}
- onChange={(newAttrs: RectConfig) => {
- const rects = ignoreAreas.slice();
+ >
+
{
+ if (!isDrawMode && isDrag && !selectedRectId) {
+ event.preventDefault();
+ setStagePos({
+ x: event.clientX - stageInitPos.x,
+ y: event.clientY - stageInitPos.y,
+ });
+ setStageOffset(stagePos);
+ }
+ }}
+ onMouseUp={(event) => {
+ setIsDrag(false);
+ setStageInitPos(stagePos);
+ }}
+ onMouseLeave={(event) => {
+ setIsDrag(false);
+ setStageInitPos(stagePos);
+ }}
+ onMouseDown={(event) => {
+ setIsDrag(true);
+ setStageInitPos({
+ x: event.clientX - stageOffset.x,
+ y: event.clientY - stageOffset.y,
+ });
+ }}
+ >
+
+
+ {
+ document.body.style.cursor = isDrawMode
+ ? "crosshair"
+ : "grab";
+ }}
+ onMouseDown={(event) => {
+ document.body.style.cursor = "grabbing";
+ }}
+ onMouseUp={(event) => {
+ document.body.style.cursor = "grab";
+ }}
+ onMouseLeave={(event) => {
+ document.body.style.cursor = "default";
+ }}
+ />
+ {ignoreAreas.map((rect, i) => {
+ return (
+ setSelectedRectId(rect.id)}
+ onChange={(newAttrs: RectConfig) => {
+ const rects = ignoreAreas.slice();
- rects[i].x = Math.round(newAttrs.x || 0);
- rects[i].y = Math.round(newAttrs.y || 0);
- rects[i].width = Math.round(
- newAttrs.width || MIN_RECT_SIDE_PIXEL
- );
- rects[i].height = Math.round(
- newAttrs.height || MIN_RECT_SIDE_PIXEL
- );
+ rects[i].x = Math.round(newAttrs.x || 0);
+ rects[i].y = Math.round(newAttrs.y || 0);
+ rects[i].width = Math.round(
+ newAttrs.width || MIN_RECT_SIDE_PIXEL
+ );
+ rects[i].height = Math.round(
+ newAttrs.height || MIN_RECT_SIDE_PIXEL
+ );
- setIgnoreAreas(rects);
- }}
- />
- );
- })}
-
-
-
+ setIgnoreAreas(rects);
+ }}
+ />
+ );
+ })}
+
+
+
+