Merge branch 'codex/editor-asset-metadata-migration' into codex/editor-asset-library
# Conflicts: # docs/project-memory/shared-memory/decision-log.md # server-rs/crates/api-server/src/editor_project.rs # src/components/image-editor/ImageCanvasEditorModel.ts # src/components/image-editor/ImageCanvasEditorView.test-utils.ts # src/components/image-editor/ImageCanvasEditorView.tsx # src/components/image-editor/useImageCanvasGenerationSubmissionWorkflow.ts # src/services/image-editor/editorProjectClient.test.ts
This commit is contained in:
@@ -101,16 +101,24 @@ function applyGeneratedMetadata(
|
||||
generated: EditorImageGenerationResult,
|
||||
generationInputs: CanvasGenerationInputs | undefined,
|
||||
): CanvasLayer {
|
||||
const resource = generated.resource;
|
||||
const asset = generated.asset;
|
||||
return {
|
||||
...layer,
|
||||
resourceId: resource?.resourceId ?? layer.resourceId,
|
||||
sourceAssetId: asset?.assetId ?? layer.sourceAssetId,
|
||||
prompt: generated.prompt,
|
||||
actualPrompt: generated.actualPrompt ?? generated.prompt,
|
||||
model: generated.model,
|
||||
provider: generated.provider,
|
||||
taskId: generated.taskId,
|
||||
objectKey: generated.objectKey,
|
||||
assetObjectId: generated.assetObjectId,
|
||||
generationInputs,
|
||||
objectKey: resource?.objectKey ?? generated.objectKey,
|
||||
assetObjectId: resource?.assetObjectId ?? generated.assetObjectId,
|
||||
assetKind:
|
||||
(resource?.assetKind as CanvasLayer['assetKind'] | undefined) ??
|
||||
layer.assetKind,
|
||||
generationInputs: resource?.generationInputs ?? generationInputs,
|
||||
generatedAssetSnapshot: asset,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -232,6 +240,8 @@ export function createIconSpritesheetResultLayers({
|
||||
frame,
|
||||
spritesheetTitle,
|
||||
}: IconSpritesheetResultLayerOptions): CanvasLayer[] {
|
||||
const spritesheetResource = generated.spritesheetResource;
|
||||
const spritesheetAsset = generated.spritesheetAsset;
|
||||
const worldCenter = getViewportWorldCenter({ canvasSize, viewport });
|
||||
const startX =
|
||||
frame?.x ?? worldCenter.x - ICON_FRAME_DISPLAY_SIZE.width / 2;
|
||||
@@ -250,7 +260,9 @@ export function createIconSpritesheetResultLayers({
|
||||
);
|
||||
const spritesheetLayer: CanvasLayer = {
|
||||
id: `layer-icon-spritesheet-${startIndex}`,
|
||||
resourceId: `local-resource-icon-spritesheet-${startIndex}`,
|
||||
resourceId:
|
||||
spritesheetResource?.resourceId ??
|
||||
`local-resource-icon-spritesheet-${startIndex}`,
|
||||
title: spritesheetTitle ?? `图标素材图集 ${startIndex}`,
|
||||
src: generated.spritesheetImageSrc,
|
||||
x: startX,
|
||||
@@ -267,7 +279,12 @@ export function createIconSpritesheetResultLayers({
|
||||
provider: generated.provider,
|
||||
taskId: generated.taskId,
|
||||
assetKind: 'icon-spritesheet',
|
||||
generationInputs,
|
||||
sourceAssetId: spritesheetAsset?.assetId,
|
||||
objectKey: spritesheetResource?.objectKey ?? undefined,
|
||||
assetObjectId: spritesheetResource?.assetObjectId ?? undefined,
|
||||
generationInputs:
|
||||
spritesheetResource?.generationInputs ?? generationInputs,
|
||||
generatedAssetSnapshot: spritesheetAsset,
|
||||
};
|
||||
const iconStartX = startX + spritesheetDisplaySize.width + 32;
|
||||
let cursorX = iconStartX;
|
||||
@@ -275,6 +292,8 @@ export function createIconSpritesheetResultLayers({
|
||||
let rowHeight = 0;
|
||||
|
||||
const iconLayers = iconResults.map((icon, index) => {
|
||||
const resource = icon.resource;
|
||||
const asset = icon.asset;
|
||||
const originalWidth = icon.width || 128;
|
||||
const originalHeight = icon.height || 128;
|
||||
const { width, height } = resolveLayerResolutionSize(
|
||||
@@ -291,7 +310,7 @@ export function createIconSpritesheetResultLayers({
|
||||
const generatedIndex = startIndex + index + 1;
|
||||
const layer: CanvasLayer = {
|
||||
id: `layer-icon-${generatedIndex}`,
|
||||
resourceId: `local-resource-icon-${generatedIndex}`,
|
||||
resourceId: resource?.resourceId ?? `local-resource-icon-${generatedIndex}`,
|
||||
title: icon.name,
|
||||
src: icon.imageSrc,
|
||||
x: cursorX,
|
||||
@@ -308,7 +327,11 @@ export function createIconSpritesheetResultLayers({
|
||||
provider: generated.provider,
|
||||
taskId: generated.taskId,
|
||||
assetKind: 'icon',
|
||||
generationInputs,
|
||||
sourceAssetId: asset?.assetId,
|
||||
objectKey: resource?.objectKey ?? undefined,
|
||||
assetObjectId: resource?.assetObjectId ?? undefined,
|
||||
generationInputs: resource?.generationInputs ?? generationInputs,
|
||||
generatedAssetSnapshot: asset,
|
||||
};
|
||||
|
||||
cursorX += width + spacing;
|
||||
|
||||
Reference in New Issue
Block a user