修复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);
|
||||
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]);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user