Refactors

This commit is contained in:
Mark Tolmacs 2025-03-02 17:55:37 +01:00
parent d3a41cb453
commit 8e4fd83f5c
2 changed files with 46 additions and 41 deletions

View file

@ -335,14 +335,21 @@ export class LinearElementEditor {
LinearElementEditor.movePoints(
element,
selectedPointsIndices.map((pointIndex) => {
let p = pointFrom<GlobalPoint>(
element.x + element.points[pointIndex][0] + deltaX,
element.y + element.points[pointIndex][1] + deltaY,
let newPointPosition = pointFrom<LocalPoint>(
element.points[pointIndex][0] + deltaX,
element.points[pointIndex][1] + deltaY,
);
// Check if point dragging is happening
if (pointIndex === lastClickedPoint) {
let globalNewPointPosition = pointFrom<GlobalPoint>(
scenePointerX - linearElementEditor.pointerOffset.x,
scenePointerY - linearElementEditor.pointerOffset.y,
);
if (
pointIndex === lastClickedPoint &&
(pointIndex === 0 || pointIndex === element.points.length - 1)
pointIndex === 0 ||
pointIndex === element.points.length - 1
) {
const hoveredElement = getHoveredElementForBinding(
{
@ -355,13 +362,14 @@ export class LinearElementEditor {
elbowed,
elbowed,
);
if (hoveredElement) {
const newPoints = Array.from(element.points);
newPoints[pointIndex] = pointFrom(
element.points[pointIndex][0] + deltaX,
element.points[pointIndex][1] + deltaY,
);
p = bindPointToSnapToElementOutline(
globalNewPointPosition = bindPointToSnapToElementOutline(
{
...element,
points: newPoints,
@ -372,18 +380,15 @@ export class LinearElementEditor {
}
}
const newPointPosition: LocalPoint =
pointIndex === lastClickedPoint
? LinearElementEditor.createPointAt(
newPointPosition = LinearElementEditor.createPointAt(
element,
elementsMap,
p[0],
p[1],
// p[0] - linearElementEditor.pointerOffset.x,
// p[1] - linearElementEditor.pointerOffset.y,
globalNewPointPosition[0],
globalNewPointPosition[1],
event[KEYS.CTRL_OR_CMD] ? null : app.getEffectiveGridSize(),
)
: pointFrom(p[0] - element.x, p[1] - element.y);
);
}
return {
index: pointIndex,
point: newPointPosition,

View file

@ -781,7 +781,7 @@ describe("Test Transform", () => {
expect((arrow as ExcalidrawArrowElement).endBinding).toStrictEqual({
elementId: "rect-1",
focus: -0,
gap: 5,
gap: FIXED_BINDING_DISTANCE,
});
expect(rect.boundElements).toStrictEqual([
{