避免预览容器变化重置缩放

自动适配仅在图片或逻辑尺寸变化时执行

通过尺寸引用保留初始视口兜底值
This commit is contained in:
2026-09-12 02:11:22 +08:00
parent 560422286b
commit ed2cfbad36
@@ -55,6 +55,8 @@ export function PreviewWorkspace({
viewportRef.current,
);
const [canvasSize, setCanvasSize] = useState({ width: 900, height: 640 });
const canvasSizeRef = useRef(canvasSize);
canvasSizeRef.current = canvasSize;
const [spaceHeld, setSpaceHeld] = useState(false);
const [renderMode, setRenderMode] =
useState<UiEditorRenderMode>('editor-overlay');
@@ -152,18 +154,12 @@ export function PreviewWorkspace({
height: logicalSize.height,
},
canvasSize: {
width: element?.clientWidth || canvasSize.width,
height: element?.clientHeight || canvasSize.height,
width: element?.clientWidth || canvasSizeRef.current.width,
height: element?.clientHeight || canvasSizeRef.current.height,
},
}),
);
}, [
activeImageId,
canvasSize.height,
canvasSize.width,
logicalSize,
setViewport,
]);
}, [activeImageId, logicalSize, setViewport]);
const scaleViewportFromCenter = useCallback(
(nextScale: number) => {