修复PSD模板画布自动适配时机问题
- 添加延迟执行确保DOM已渲染 - 添加尺寸有效性检查 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
d4033cc201
commit
a2bd22c4e1
@ -472,18 +472,23 @@ export function AgentPsdTemplateEditorDialog({
|
|||||||
setTextAssignments(initialState.textAssignments);
|
setTextAssignments(initialState.textAssignments);
|
||||||
setSelectedLayerId(getPreferredSelectedLayerId(selectedTemplate));
|
setSelectedLayerId(getPreferredSelectedLayerId(selectedTemplate));
|
||||||
|
|
||||||
// 自动适配缩放比例
|
// 自动适配缩放比例(延迟执行确保 DOM 已渲染)
|
||||||
if (selectedTemplate && previewViewportRef.current) {
|
if (selectedTemplate) {
|
||||||
const viewport = previewViewportRef.current;
|
setTimeout(() => {
|
||||||
const padding = 32; // 预留边距
|
if (previewViewportRef.current) {
|
||||||
const availableWidth = viewport.clientWidth - padding;
|
const viewport = previewViewportRef.current;
|
||||||
const availableHeight = viewport.clientHeight - padding;
|
const padding = 32;
|
||||||
|
const availableWidth = viewport.clientWidth - padding;
|
||||||
|
const availableHeight = viewport.clientHeight - padding;
|
||||||
|
|
||||||
const scaleX = availableWidth / selectedTemplate.width;
|
if (availableWidth > 0 && availableHeight > 0) {
|
||||||
const scaleY = availableHeight / selectedTemplate.height;
|
const scaleX = availableWidth / selectedTemplate.width;
|
||||||
const fitScale = Math.min(scaleX, scaleY, 1); // 不超过1倍
|
const scaleY = availableHeight / selectedTemplate.height;
|
||||||
|
const fitScale = Math.min(scaleX, scaleY, 1);
|
||||||
setStageScale(fitScale);
|
setStageScale(fitScale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
}
|
}
|
||||||
}, [open, selectedTemplate, sourceImageUrl]);
|
}, [open, selectedTemplate, sourceImageUrl]);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user