Fix pan spamming
This commit is contained in:
parent
603c2cc3e2
commit
9bfbdceda2
@ -119,8 +119,8 @@ export default function Canvas() {
|
|||||||
|
|
||||||
setLine({
|
setLine({
|
||||||
...line,
|
...line,
|
||||||
endX: (e.clientX - offsetX - settings.pan.x) / settings.zoom,
|
endX: (e.clientX - offsetX - settings.pan?.x) / settings.zoom,
|
||||||
endY: (e.clientY - offsetY - settings.pan.y) / settings.zoom,
|
endY: (e.clientY - offsetY - settings.pan?.y) / settings.zoom,
|
||||||
});
|
});
|
||||||
} else if (
|
} else if (
|
||||||
panning.state &&
|
panning.state &&
|
||||||
@ -134,7 +134,7 @@ export default function Canvas() {
|
|||||||
const dy = e.clientY - panOffset.y;
|
const dy = e.clientY - panOffset.y;
|
||||||
setSettings((prev) => ({
|
setSettings((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
pan: { x: prev.pan.x + dx, y: prev.pan.y + dy },
|
pan: { x: prev.pan?.x + dx, y: prev.pan?.y + dy },
|
||||||
}));
|
}));
|
||||||
setPanOffset({ x: e.clientX, y: e.clientY });
|
setPanOffset({ x: e.clientX, y: e.clientY });
|
||||||
} else if (dragging.element === ObjectType.TABLE && dragging.id >= 0) {
|
} else if (dragging.element === ObjectType.TABLE && dragging.id >= 0) {
|
||||||
@ -228,7 +228,7 @@ export default function Canvas() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const didPan = () =>
|
const didPan = () =>
|
||||||
!(settings.pan.x === panning.x && settings.pan.y === panning.y);
|
!(settings.pan?.x === panning.x && settings.pan?.y === panning.y);
|
||||||
|
|
||||||
const getMoveInfo = () => {
|
const getMoveInfo = () => {
|
||||||
switch (dragging.element) {
|
switch (dragging.element) {
|
||||||
@ -281,7 +281,7 @@ export default function Canvas() {
|
|||||||
action: Action.PAN,
|
action: Action.PAN,
|
||||||
undo: { x: panning.x, y: panning.y },
|
undo: { x: panning.x, y: panning.y },
|
||||||
redo: settings.pan,
|
redo: settings.pan,
|
||||||
message: `Move diagram to (${settings.pan.x}, ${settings.pan.y})`,
|
message: `Move diagram to (${settings.pan?.x}, ${settings.pan?.y})`,
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
setRedoStack([]);
|
setRedoStack([]);
|
||||||
@ -422,7 +422,7 @@ export default function Canvas() {
|
|||||||
)}
|
)}
|
||||||
<g
|
<g
|
||||||
style={{
|
style={{
|
||||||
transform: `translate(${settings.pan.x}px, ${settings.pan.y}px) scale(${settings.zoom})`,
|
transform: `translate(${settings.pan?.x}px, ${settings.pan?.y}px) scale(${settings.zoom})`,
|
||||||
transformOrigin: "top left",
|
transformOrigin: "top left",
|
||||||
}}
|
}}
|
||||||
id="diagram"
|
id="diagram"
|
||||||
|
@ -482,7 +482,6 @@ export default function Editor() {
|
|||||||
types?.length,
|
types?.length,
|
||||||
relationships?.length,
|
relationships?.length,
|
||||||
tasks?.length,
|
tasks?.length,
|
||||||
settings.pan,
|
|
||||||
settings.zoom,
|
settings.zoom,
|
||||||
title,
|
title,
|
||||||
]);
|
]);
|
||||||
|
Loading…
Reference in New Issue
Block a user