修复PSD模板画布自动适配时机问题
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

- 添加延迟执行确保DOM已渲染
- 添加尺寸有效性检查

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Your Name 2026-04-01 18:39:55 +08:00
parent d4033cc201
commit a2bd22c4e1

View File

@ -472,18 +472,23 @@ export function AgentPsdTemplateEditorDialog({
setTextAssignments(initialState.textAssignments);
setSelectedLayerId(getPreferredSelectedLayerId(selectedTemplate));
// 自动适配缩放比例
if (selectedTemplate && previewViewportRef.current) {
const viewport = previewViewportRef.current;
const padding = 32; // 预留边距
const availableWidth = viewport.clientWidth - padding;
const availableHeight = viewport.clientHeight - padding;
// 自动适配缩放比例(延迟执行确保 DOM 已渲染)
if (selectedTemplate) {
setTimeout(() => {
if (previewViewportRef.current) {
const viewport = previewViewportRef.current;
const padding = 32;
const availableWidth = viewport.clientWidth - padding;
const availableHeight = viewport.clientHeight - padding;
const scaleX = availableWidth / selectedTemplate.width;
const scaleY = availableHeight / selectedTemplate.height;
const fitScale = Math.min(scaleX, scaleY, 1); // 不超过1倍
setStageScale(fitScale);
if (availableWidth > 0 && availableHeight > 0) {
const scaleX = availableWidth / selectedTemplate.width;
const scaleY = availableHeight / selectedTemplate.height;
const fitScale = Math.min(scaleX, scaleY, 1);
setStageScale(fitScale);
}
}
}, 100);
}
}, [open, selectedTemplate, sourceImageUrl]);