don't decrease height beyond min height
This commit is contained in:
parent
9025ad99fc
commit
2abc4c2ac1
@ -172,10 +172,7 @@ export const handleBindTextResize = (
|
|||||||
const maxWidth = getMaxContainerWidth(container);
|
const maxWidth = getMaxContainerWidth(container);
|
||||||
const maxHeight = getMaxContainerHeight(container);
|
const maxHeight = getMaxContainerHeight(container);
|
||||||
let containerHeight = containerDims.height;
|
let containerHeight = containerDims.height;
|
||||||
if (
|
if (transformHandleType !== "n" && transformHandleType !== "s") {
|
||||||
shouldMaintainAspectRatio ||
|
|
||||||
(transformHandleType !== "n" && transformHandleType !== "s")
|
|
||||||
) {
|
|
||||||
if (text) {
|
if (text) {
|
||||||
text = wrapText(
|
text = wrapText(
|
||||||
textElement.originalText,
|
textElement.originalText,
|
||||||
@ -209,6 +206,53 @@ export const handleBindTextResize = (
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
shouldMaintainAspectRatio &&
|
||||||
|
(nextHeight > maxHeight || nextWidth > maxWidth)
|
||||||
|
) {
|
||||||
|
let height = containerDims.height;
|
||||||
|
let width = containerDims.width;
|
||||||
|
let x = container.x;
|
||||||
|
let y = container.y;
|
||||||
|
|
||||||
|
if (nextHeight > maxHeight) {
|
||||||
|
height = computeContainerDimensionForBoundText(
|
||||||
|
nextHeight,
|
||||||
|
container.type,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (nextWidth > maxWidth) {
|
||||||
|
width = computeContainerDimensionForBoundText(
|
||||||
|
nextWidth,
|
||||||
|
container.type,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const diffX = width - containerDims.width;
|
||||||
|
const diffY = height - containerDims.height;
|
||||||
|
|
||||||
|
if (transformHandleType === "n") {
|
||||||
|
y = container.y - diffY;
|
||||||
|
} else if (
|
||||||
|
transformHandleType === "e" ||
|
||||||
|
transformHandleType === "w" ||
|
||||||
|
transformHandleType === "ne" ||
|
||||||
|
transformHandleType === "nw"
|
||||||
|
) {
|
||||||
|
y = container.y - diffY / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transformHandleType === "s" || transformHandleType === "n") {
|
||||||
|
x = container.x - diffX / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
mutateElement(container, {
|
||||||
|
height,
|
||||||
|
width,
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
mutateElement(textElement, {
|
mutateElement(textElement, {
|
||||||
text,
|
text,
|
||||||
width: nextWidth,
|
width: nextWidth,
|
||||||
@ -223,17 +267,6 @@ export const handleBindTextResize = (
|
|||||||
textElement as ExcalidrawTextElementWithContainer,
|
textElement as ExcalidrawTextElementWithContainer,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
if (shouldMaintainAspectRatio && nextHeight > maxHeight) {
|
|
||||||
containerHeight = computeContainerDimensionForBoundText(
|
|
||||||
nextHeight,
|
|
||||||
container.type,
|
|
||||||
);
|
|
||||||
const { y } = computeContainerCoords(textElement, container.type);
|
|
||||||
mutateElement(container, {
|
|
||||||
y,
|
|
||||||
height: containerHeight,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1062,12 +1062,14 @@ ard`,
|
|||||||
expect(rectangle.height).toBe(232);
|
expect(rectangle.height).toBe(232);
|
||||||
expect(textElement.fontSize).toBe(20);
|
expect(textElement.fontSize).toBe(20);
|
||||||
expect(textElement.text).toBe(
|
expect(textElement.text).toBe(
|
||||||
`Excalidra
|
`Excalid
|
||||||
w is an
|
raw is
|
||||||
opensourc
|
an
|
||||||
e virtual
|
opensou
|
||||||
whiteboar
|
rce
|
||||||
d`,
|
virtual
|
||||||
|
whitebo
|
||||||
|
ard`,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user