scale embeddable and fix youtube start bug

This commit is contained in:
zsviczian 2023-11-16 18:27:28 +00:00
parent 23b24ea5c3
commit e2982a2968
7 changed files with 31 additions and 13 deletions

View file

@ -27,6 +27,7 @@ import {
import {
isArrowElement,
isBoundToContainer,
isEmbeddableElement,
isFrameElement,
isFreeDrawElement,
isImageElement,
@ -586,15 +587,24 @@ export const resizeSingleElement = (
};
if ("scale" in element && "scale" in stateAtResizeStart) {
mutateElement(element, {
scale: [
// defaulting because scaleX/Y can be 0/-0
(Math.sign(newBoundsX2 - stateAtResizeStart.x) ||
stateAtResizeStart.scale[0]) * stateAtResizeStart.scale[0],
(Math.sign(newBoundsY2 - stateAtResizeStart.y) ||
stateAtResizeStart.scale[1]) * stateAtResizeStart.scale[1],
],
});
if (isEmbeddableElement(element) && shouldMaintainAspectRatio) {
const scale: [number, number] = [
eleNewWidth / (stateAtResizeStart.width / stateAtResizeStart.scale[0]),
eleNewHeight /
(stateAtResizeStart.height / stateAtResizeStart.scale[1]),
];
mutateElement(element, { scale });
} else {
mutateElement(element, {
scale: [
// defaulting because scaleX/Y can be 0/-0
(Math.sign(newBoundsX2 - stateAtResizeStart.x) ||
stateAtResizeStart.scale[0]) * stateAtResizeStart.scale[0],
(Math.sign(newBoundsY2 - stateAtResizeStart.y) ||
stateAtResizeStart.scale[1]) * stateAtResizeStart.scale[1],
],
});
}
}
if (