Revert "fix: honor PSD super locked image slots"

This reverts commit b189ca1b58e92df28f46d0c99dd3ae86a7edb4bc.
This commit is contained in:
Your Name 2026-06-01 18:37:02 +08:00
parent b189ca1b58
commit 674a8d143e
4 changed files with 24 additions and 22 deletions

View File

@ -150,14 +150,11 @@ export async function executeAgentPsdTemplateRenderRequest(
);
}
const canReplaceImageLayer =
isAgentPsdImageLayerSlot(layer) && layer.isEditable;
const canEditTextLayer = isAgentPsdTemplateLayerUserEditable(layer);
if (!canReplaceImageLayer && !canEditTextLayer) {
if (!isAgentPsdTemplateLayerUserEditable(layer)) {
continue;
}
if (canReplaceImageLayer) {
if (isAgentPsdImageLayerSlot(layer)) {
const explicitUrl = String(body.imageAssignments[layer.id] || "").trim();
if (explicitUrl) {
imageAssignments[layer.id] = explicitUrl;
@ -175,7 +172,7 @@ export async function executeAgentPsdTemplateRenderRequest(
}
}
if (canEditTextLayer && isAgentPsdTextLayerSlot(layer)) {
if (isAgentPsdTextLayerSlot(layer)) {
if (Object.hasOwn(body.textAssignments, layer.id)) {
textAssignments[layer.id] = String(
body.textAssignments[layer.id] ?? ""

View File

@ -411,9 +411,10 @@ export function parseAgentPsdTemplateLayers(value: unknown) {
layers.push({
...baseRecord,
slotType: "image",
isDefaultResultSource: isEditable && record.isDefaultResultSource === true,
isDefaultResultSource:
isEditable && !isSuperLocked && record.isDefaultResultSource === true,
allowUserUploadOverride:
isEditable ? record.allowUserUploadOverride !== false : false,
isEditable && !isSuperLocked ? record.allowUserUploadOverride !== false : false,
replaceMode: normalizeAgentPsdTemplateReplaceMode(record.replaceMode),
contentBounds: normalizeAgentPsdTemplateImageContentBounds(
record.contentBounds,
@ -616,7 +617,7 @@ export function getAgentPsdTemplateRuntimeMissingLayers(template: AgentPsdTempla
if (hasUsableRenderBase) {
return (
isAgentPsdImageLayerSlot(layer) &&
layer.isEditable &&
isAgentPsdTemplateLayerUserEditable(layer) &&
!hasAgentPsdTemplateStoredLayerSource(layer)
);
}

View File

@ -728,11 +728,7 @@ function shouldPrepareLayerPreview(
layer: AgentPsdTemplateLayerSlot,
assetProfile: PsdTemplateLayerAssetProfile
) {
return (
assetProfile === "full" ||
isAgentPsdTemplateLayerUserEditable(layer) ||
(isAgentPsdImageLayerSlot(layer) && layer.isEditable)
);
return assetProfile === "full" || isAgentPsdTemplateLayerUserEditable(layer);
}
function shouldPrepareLayerSource(
@ -743,7 +739,7 @@ function shouldPrepareLayerSource(
return true;
}
return isAgentPsdImageLayerSlot(layer) && layer.isEditable;
return isAgentPsdImageLayerSlot(layer) && isAgentPsdTemplateLayerUserEditable(layer);
}
export async function preparePsdTemplateRenderAssets(params: {
@ -799,7 +795,8 @@ export async function preparePsdTemplateRenderAssets(params: {
isAgentPsdTextLayerSlot(targetLayer) &&
targetLayer.styleSource !== "custom";
const shouldResolveImageBounds =
isAgentPsdImageLayerSlot(targetLayer) && targetLayer.isEditable;
isAgentPsdTemplateLayerUserEditable(targetLayer) &&
isAgentPsdImageLayerSlot(targetLayer);
if (
!shouldUploadPreview &&

View File

@ -10,6 +10,7 @@ import {
AGENT_PSD_TEMPLATE_ASSET_VERSION,
hasAgentPsdTemplateRenderSegments,
isAgentPsdImageLayerSlot,
isAgentPsdLayerSuperLocked,
isAgentPsdTemplateLayerUserEditable,
isAgentPsdTextLayerSlot,
type AgentPsdTemplate,
@ -41,7 +42,7 @@ function hasMissingLayerAssets(template: AgentPsdTemplate) {
if (hasRenderBase) {
return (
isAgentPsdImageLayerSlot(layer) &&
layer.isEditable &&
isAgentPsdTemplateLayerUserEditable(layer) &&
!String(layer.sourceUrl || "").trim()
);
}
@ -73,13 +74,19 @@ function hasStaticTemplateLayers(template: AgentPsdTemplate) {
function repairEditableImageLayerSelection(template: AgentPsdTemplate) {
const imageLayers = template.layers.filter(isAgentPsdImageLayerSlot);
if (imageLayers.length === 0) {
const unlockedImageLayers = imageLayers.filter(
(layer) => !isAgentPsdLayerSuperLocked(layer)
);
if (unlockedImageLayers.length === 0) {
return template.layers;
}
const editableImageLayers = imageLayers.filter((layer) => layer.isEditable);
const defaultImageLayer = imageLayers.find(
(layer) => layer.isEditable && layer.isDefaultResultSource
const editableImageLayers = unlockedImageLayers.filter(
isAgentPsdTemplateLayerUserEditable
);
const defaultImageLayer = unlockedImageLayers.find(
(layer) =>
isAgentPsdTemplateLayerUserEditable(layer) && layer.isDefaultResultSource
);
const shouldAutoRepairSelection =
editableImageLayers.length === 0 ||
@ -91,7 +98,7 @@ function repairEditableImageLayerSelection(template: AgentPsdTemplate) {
}
const nextPrimaryLayerId = pickPrimaryPsdImageLayerId({
imageLayers,
imageLayers: unlockedImageLayers,
canvasWidth: template.width,
canvasHeight: template.height,
});