clean
This commit is contained in:
parent
0e4879bab5
commit
00231d9f01
@ -2,97 +2,68 @@ import { React, useState } from "react";
|
|||||||
|
|
||||||
export default function Area(props) {
|
export default function Area(props) {
|
||||||
const [resize, setResize] = useState("none");
|
const [resize, setResize] = useState("none");
|
||||||
const [initialMouseX, setInitialMouseX] = useState(0);
|
const [initCoords, setInitCoords] = useState({
|
||||||
const [initialMouseY, setInitialMouseY] = useState(0);
|
x: 0,
|
||||||
const [initialWidth, setInitialWidth] = useState(0);
|
y: 0,
|
||||||
const [initialHeight, setInitialHeight] = useState(0);
|
width: 0,
|
||||||
const [initialX, setInitialX] = useState(0);
|
height: 0,
|
||||||
const [initialY, setInitialY] = useState(0);
|
mouseX: 0,
|
||||||
|
mouseY: 0,
|
||||||
|
});
|
||||||
|
|
||||||
const handleMouseDown = (e, dir) => {
|
const handleMouseDown = (e, dir) => {
|
||||||
setResize(dir);
|
setResize(dir);
|
||||||
props.setPanning(false);
|
props.setPanning(false);
|
||||||
setInitialMouseX(e.clientX);
|
setInitCoords({
|
||||||
setInitialMouseY(e.clientY);
|
x: props.areaData.x,
|
||||||
setInitialWidth(props.areaData.width);
|
y: props.areaData.y,
|
||||||
setInitialHeight(props.areaData.height);
|
width: props.areaData.width,
|
||||||
setInitialX(props.areaData.x);
|
height: props.areaData.height,
|
||||||
setInitialY(props.areaData.y);
|
mouseX: e.clientX,
|
||||||
|
mouseY: e.clientY,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMouseMove = (e) => {
|
const handleMouseMove = (e) => {
|
||||||
|
if (resize === "none") return;
|
||||||
|
|
||||||
|
let newX = initCoords.x;
|
||||||
|
let newY = initCoords.y;
|
||||||
|
let newWidth = initCoords.width;
|
||||||
|
let newHeight = initCoords.height;
|
||||||
props.setPanning(false);
|
props.setPanning(false);
|
||||||
if (resize === "br") {
|
if (resize === "br") {
|
||||||
const newWidth = initialWidth + (e.clientX - initialMouseX);
|
newWidth = initCoords.width + (e.clientX - initCoords.mouseX);
|
||||||
const newHeight = initialHeight + (e.clientY - initialMouseY);
|
newHeight = initCoords.height + (e.clientY - initCoords.mouseY);
|
||||||
props.setAreas((prev) => {
|
|
||||||
return prev.map((a) => {
|
|
||||||
if (a.id === props.areaData.id) {
|
|
||||||
return {
|
|
||||||
...a,
|
|
||||||
width: newWidth,
|
|
||||||
height: newHeight,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return a;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else if (resize === "tl") {
|
} else if (resize === "tl") {
|
||||||
const newX = initialX + (e.clientX - initialMouseX);
|
newX = initCoords.x + (e.clientX - initCoords.mouseX);
|
||||||
const newY = initialY + (e.clientY - initialMouseY);
|
newY = initCoords.y + (e.clientY - initCoords.mouseY);
|
||||||
const newWidth = initialWidth - (e.clientX - initialMouseX);
|
newWidth = initCoords.width - (e.clientX - initCoords.mouseX);
|
||||||
const newHeight = initialHeight - (e.clientY - initialMouseY);
|
newHeight = initCoords.height - (e.clientY - initCoords.mouseY);
|
||||||
props.setAreas((prev) => {
|
|
||||||
return prev.map((a) => {
|
|
||||||
if (a.id === props.areaData.id) {
|
|
||||||
return {
|
|
||||||
...a,
|
|
||||||
x: newX,
|
|
||||||
y: newY,
|
|
||||||
width: newWidth,
|
|
||||||
height: newHeight,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return a;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else if (resize === "tr") {
|
} else if (resize === "tr") {
|
||||||
const newY = initialY + (e.clientY - initialMouseY);
|
newY = initCoords.y + (e.clientY - initCoords.mouseY);
|
||||||
const newWidth = initialWidth + (e.clientX - initialMouseX);
|
newWidth = initCoords.width + (e.clientX - initCoords.mouseX);
|
||||||
const newHeight = initialHeight - (e.clientY - initialMouseY);
|
newHeight = initCoords.height - (e.clientY - initCoords.mouseY);
|
||||||
props.setAreas((prev) => {
|
|
||||||
return prev.map((a) => {
|
|
||||||
if (a.id === props.areaData.id) {
|
|
||||||
return {
|
|
||||||
...a,
|
|
||||||
y: newY,
|
|
||||||
width: newWidth,
|
|
||||||
height: newHeight,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return a;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else if (resize === "bl") {
|
} else if (resize === "bl") {
|
||||||
const newX = initialX + (e.clientX - initialMouseX);
|
newX = initCoords.x + (e.clientX - initCoords.mouseX);
|
||||||
const newWidth = initialWidth - (e.clientX - initialMouseX);
|
newWidth = initCoords.width - (e.clientX - initCoords.mouseX);
|
||||||
const newHeight = initialHeight + (e.clientY - initialMouseY);
|
newHeight = initCoords.height + (e.clientY - initCoords.mouseY);
|
||||||
props.setAreas((prev) => {
|
|
||||||
return prev.map((a) => {
|
|
||||||
if (a.id === props.areaData.id) {
|
|
||||||
return {
|
|
||||||
...a,
|
|
||||||
x: newX,
|
|
||||||
width: newWidth,
|
|
||||||
height: newHeight,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
return a;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
props.setAreas((prev) => {
|
||||||
|
return prev.map((a) => {
|
||||||
|
if (a.id === props.areaData.id) {
|
||||||
|
return {
|
||||||
|
...a,
|
||||||
|
x: newX,
|
||||||
|
y: newY,
|
||||||
|
width: newWidth,
|
||||||
|
height: newHeight,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
});
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMouseUp = () => {
|
const handleMouseUp = () => {
|
||||||
|
Loading…
Reference in New Issue
Block a user