diff --git a/src/components/image-editor/ImageCanvasEditorModel.test.ts b/src/components/image-editor/ImageCanvasEditorModel.test.ts index 3e0eb519f..47941dd7e 100644 --- a/src/components/image-editor/ImageCanvasEditorModel.test.ts +++ b/src/components/image-editor/ImageCanvasEditorModel.test.ts @@ -589,6 +589,7 @@ describe('ImageCanvasEditorModel', () => { sourceType: 'generated', mediaType: 'audio', assetKind: 'sound-effect', + durationSeconds: 3.5, }, new Map([ [ @@ -605,6 +606,7 @@ describe('ImageCanvasEditorModel', () => { src: '/generated-character-drafts/editor-audios/sfx.mp3', mediaType: 'audio', assetKind: 'sound-effect', + durationSeconds: 3.5, }); }); diff --git a/src/components/image-editor/ImageCanvasEditorModel.ts b/src/components/image-editor/ImageCanvasEditorModel.ts index 91595b6de..ee3ab0b83 100644 --- a/src/components/image-editor/ImageCanvasEditorModel.ts +++ b/src/components/image-editor/ImageCanvasEditorModel.ts @@ -186,6 +186,7 @@ export function createLayerFromAsset( objectKey: asset.objectKey, assetObjectId: asset.assetObjectId, sourceResourceId: asset.sourceResourceId, + durationSeconds: asset.durationSeconds, sourceAssetId: asset.id, assetKind, generationInputs: asset.generationInputs, @@ -781,6 +782,9 @@ export function hydrateLayer( ? stringOrNull(resource?.assetObjectId) : stringOrNull(snapshot.assetObjectId) ?? stringOrNull(resource?.assetObjectId), + durationSeconds: isCharacterAnimation + ? undefined + : audioDurationOrNull(snapshot.durationSeconds), imageSequenceDurationMs: isCharacterAnimation ? audioDurationOrNull(resource?.imageSequenceDurationMs) : undefined, diff --git a/src/components/image-editor/ImageCanvasEditorTypes.ts b/src/components/image-editor/ImageCanvasEditorTypes.ts index ff6795de0..a426d7afe 100644 --- a/src/components/image-editor/ImageCanvasEditorTypes.ts +++ b/src/components/image-editor/ImageCanvasEditorTypes.ts @@ -60,6 +60,7 @@ export type EditorAsset = { showcaseSubmitError?: string | null; assetKind?: CanvasAssetKind | null; generationInputs?: CanvasGenerationInputs | null; + durationSeconds?: number; imageSequenceFrames?: EditorImageSequenceFrameResult[]; imageSequenceDurationMs?: number; uploadStatus?: 'uploading' | 'failed';