From c7fe531b16a243f8e59d4b9106b5eba56be9b556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Sat, 12 Sep 2026 16:30:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E9=A2=84=E8=A7=88=E7=99=BE?= =?UTF-8?q?=E5=88=86=E6=AF=94=E6=8C=89=E9=92=AE=E9=80=82=E9=85=8D=E7=94=BB?= =?UTF-8?q?=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将缩放百分比显示改为可点击的适配画布按钮 复用工具栏按钮的鼠标焦点处理并按当前容器重新计算视口 补充预览缩放组件回归测试并同步交互设计文档 --- .../components/preview/PreviewWorkspace.tsx | 29 ++++++++++++++++--- .../tests/previewWorkspaceZoom.test.tsx | 15 ++++++++++ ...【交互设计】预览画布缩放滑杆-2026-09-05.md | 4 +-- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/apps/ai-game-creator-shell/src/view/ui-editor/components/preview/PreviewWorkspace.tsx b/apps/ai-game-creator-shell/src/view/ui-editor/components/preview/PreviewWorkspace.tsx index 8fbc37dbb..8ec753d09 100644 --- a/apps/ai-game-creator-shell/src/view/ui-editor/components/preview/PreviewWorkspace.tsx +++ b/apps/ai-game-creator-shell/src/view/ui-editor/components/preview/PreviewWorkspace.tsx @@ -141,6 +141,25 @@ export function PreviewWorkspace({ setViewportState(next); }, []); + const fitToCanvas = useCallback(() => { + if (!logicalSize) return; + const element = viewportElementRef.current; + setViewport( + fitViewportToBounds({ + bounds: { + x: 0, + y: 0, + width: logicalSize.width, + height: logicalSize.height, + }, + canvasSize: { + width: element?.clientWidth || canvasSizeRef.current.width, + height: element?.clientHeight || canvasSizeRef.current.height, + }, + }), + ); + }, [logicalSize, setViewport]); + useEffect(() => { if (!activeImageId || !logicalSize) return; const element = viewportElementRef.current; @@ -548,12 +567,14 @@ export function PreviewWorkspace({ zoomToDisplayScale(Number(event.target.value) / 100) } /> - {displayPercent} - +