mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
[skip ci] No jumping at the beginning
This commit is contained in:
parent
4184103eb0
commit
05d8ce55e4
2 changed files with 10 additions and 59 deletions
|
@ -98,28 +98,6 @@ const _newElementBase = <T extends ExcalidrawElement>(
|
|||
...rest
|
||||
}: ElementConstructorOpts & Omit<Partial<ExcalidrawGenericElement>, "type">,
|
||||
) => {
|
||||
// NOTE (mtolmacs): This is a temporary check to detect extremely large
|
||||
// element position or sizing
|
||||
if (
|
||||
x < -1e6 ||
|
||||
x > 1e6 ||
|
||||
y < -1e6 ||
|
||||
y > 1e6 ||
|
||||
width < -1e6 ||
|
||||
width > 1e6 ||
|
||||
height < -1e6 ||
|
||||
height > 1e6
|
||||
) {
|
||||
console.error("New element size or position is too large", {
|
||||
x,
|
||||
y,
|
||||
width,
|
||||
height,
|
||||
// @ts-ignore
|
||||
points: rest.points,
|
||||
});
|
||||
}
|
||||
|
||||
// assign type to guard against excess properties
|
||||
const element: Merge<ExcalidrawGenericElement, { type: T["type"] }> = {
|
||||
id: rest.id || randomId(),
|
||||
|
|
|
@ -16,7 +16,6 @@ import {
|
|||
vectorSubtract,
|
||||
vectorDot,
|
||||
vectorNormalize,
|
||||
lineSegment,
|
||||
} from "@excalidraw/math";
|
||||
import { isPointInShape } from "@excalidraw/utils/collision";
|
||||
import { getSelectionBoxShape } from "@excalidraw/utils/shape";
|
||||
|
@ -120,7 +119,6 @@ import {
|
|||
updateBoundElements,
|
||||
getSuggestedBindingsForArrows,
|
||||
getOutlineAvoidingPoint,
|
||||
FIXED_BINDING_DISTANCE,
|
||||
} from "@excalidraw/element/binding";
|
||||
|
||||
import { LinearElementEditor } from "@excalidraw/element/linearElementEditor";
|
||||
|
@ -232,7 +230,6 @@ import {
|
|||
hitElementBoundText,
|
||||
hitElementBoundingBoxOnly,
|
||||
hitElementItself,
|
||||
intersectElementWithLineSegment,
|
||||
} from "@excalidraw/element/collision";
|
||||
|
||||
import { getVisibleSceneBounds } from "@excalidraw/element/bounds";
|
||||
|
@ -7830,43 +7827,19 @@ class App extends React.Component<AppProps, AppState> {
|
|||
this.state.currentItemArrowType === ARROW_TYPE.elbow ? [] : null,
|
||||
});
|
||||
|
||||
const hoveredElement = getHoveredElementForBinding(
|
||||
{ x: gridX, y: gridY },
|
||||
this.scene.getNonDeletedElements(),
|
||||
this.scene.getNonDeletedElementsMap(),
|
||||
const [x, y] = getOutlineAvoidingPoint(
|
||||
arrow,
|
||||
pointFrom<GlobalPoint>(gridX, gridY),
|
||||
0,
|
||||
this.scene,
|
||||
this.state.zoom,
|
||||
true,
|
||||
this.state.currentItemArrowType === ARROW_TYPE.elbow,
|
||||
);
|
||||
|
||||
if (hoveredElement) {
|
||||
[arrow.x, arrow.y] =
|
||||
intersectElementWithLineSegment(
|
||||
hoveredElement,
|
||||
lineSegment(
|
||||
pointFrom<GlobalPoint>(gridX, gridY),
|
||||
pointFrom<GlobalPoint>(
|
||||
gridX,
|
||||
hoveredElement.y + hoveredElement.height / 2,
|
||||
),
|
||||
),
|
||||
2 * FIXED_BINDING_DISTANCE,
|
||||
)[0] ??
|
||||
intersectElementWithLineSegment(
|
||||
hoveredElement,
|
||||
lineSegment(
|
||||
pointFrom<GlobalPoint>(gridX, gridY),
|
||||
pointFrom<GlobalPoint>(
|
||||
hoveredElement.x + hoveredElement.width / 2,
|
||||
gridY,
|
||||
),
|
||||
),
|
||||
2 * FIXED_BINDING_DISTANCE,
|
||||
)[0] ??
|
||||
pointFrom<GlobalPoint>(gridX, gridY);
|
||||
}
|
||||
|
||||
element = arrow;
|
||||
element = {
|
||||
...arrow,
|
||||
x,
|
||||
y,
|
||||
};
|
||||
} else {
|
||||
element = newLinearElement({
|
||||
type: elementType,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue