mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
fix(web): face selection box position resetting on browser resize (#26766)
This commit is contained in:
@@ -74,6 +74,7 @@
|
|||||||
|
|
||||||
canvas.add(faceRect);
|
canvas.add(faceRect);
|
||||||
canvas.setActiveObject(faceRect);
|
canvas.setActiveObject(faceRect);
|
||||||
|
setDefaultFaceRectanglePosition(faceRect);
|
||||||
};
|
};
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
@@ -93,9 +94,19 @@
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
$effect(() => {
|
const setDefaultFaceRectanglePosition = (faceRect: Rect) => {
|
||||||
const { offsetX, offsetY } = imageContentMetrics;
|
const { offsetX, offsetY } = imageContentMetrics;
|
||||||
|
|
||||||
|
faceRect.set({
|
||||||
|
top: offsetY + 200,
|
||||||
|
left: offsetX + 200,
|
||||||
|
});
|
||||||
|
|
||||||
|
faceRect.setCoords();
|
||||||
|
positionFaceSelector();
|
||||||
|
};
|
||||||
|
|
||||||
|
$effect(() => {
|
||||||
if (!canvas) {
|
if (!canvas) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -109,15 +120,21 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
faceRect.set({
|
if (!isFaceRectIntersectingCanvas(faceRect, canvas)) {
|
||||||
top: offsetY + 200,
|
setDefaultFaceRectanglePosition(faceRect);
|
||||||
left: offsetX + 200,
|
}
|
||||||
});
|
|
||||||
|
|
||||||
faceRect.setCoords();
|
|
||||||
positionFaceSelector();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const isFaceRectIntersectingCanvas = (faceRect: Rect, canvas: Canvas) => {
|
||||||
|
const faceBox = faceRect.getBoundingRect();
|
||||||
|
return !(
|
||||||
|
0 > faceBox.left + faceBox.width ||
|
||||||
|
0 > faceBox.top + faceBox.height ||
|
||||||
|
canvas.width < faceBox.left ||
|
||||||
|
canvas.height < faceBox.top
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
const cancel = () => {
|
const cancel = () => {
|
||||||
isFaceEditMode.value = false;
|
isFaceEditMode.value = false;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user