1
1
import { PageAppSDK } from '@contentful/app-sdk' ;
2
2
3
+ const getDefaultLocale = async ( sdk : PageAppSDK ) => {
4
+ const locales = await sdk . cma . locale . getMany ( { spaceId : sdk . ids . space } ) ;
5
+ return locales . items . find ( ( locale ) => locale . default ) ! . code ;
6
+ } ;
7
+
3
8
const createAsset = async ( {
4
9
sdk,
5
10
initialPrompt,
@@ -18,19 +23,20 @@ const createAsset = async ({
18
23
const file = new File ( [ blob ] , fileName , { type : 'image/png' } ) ;
19
24
const buffer = await file . arrayBuffer ( ) ;
20
25
const upload = await sdk . cma . upload . create ( { spaceId : sdk . ids . space } , { file : buffer } ) ;
26
+ const defaultLocale = await getDefaultLocale ( sdk ) ;
21
27
22
28
return await sdk . cma . asset . create (
23
29
{ spaceId : sdk . ids . space } ,
24
30
{
25
31
fields : {
26
32
title : {
27
- 'en-US' : imageName ,
33
+ [ defaultLocale ] : imageName ,
28
34
} ,
29
35
description : {
30
- 'en-US' : `Generated from prompt: ${ initialPrompt } ` ,
36
+ [ defaultLocale ] : `Generated from prompt: ${ initialPrompt } ` ,
31
37
} ,
32
38
file : {
33
- 'en-US' : {
39
+ [ defaultLocale ] : {
34
40
contentType : 'image/png' ,
35
41
fileName : fileName ,
36
42
uploadFrom : {
@@ -57,7 +63,8 @@ export const uploadAsset = async ({
57
63
if ( ! generatedImage ) return ;
58
64
try {
59
65
const newAsset = await createAsset ( { sdk, initialPrompt, assetName, generatedImage } ) ;
60
- const processedAsset = await sdk . cma . asset . processForLocale ( { spaceId : sdk . ids . space } , newAsset , 'en-US' ) ;
66
+ const defaultLocale = await getDefaultLocale ( sdk ) ;
67
+ const processedAsset = await sdk . cma . asset . processForLocale ( { spaceId : sdk . ids . space } , newAsset , defaultLocale ) ;
61
68
await sdk . cma . asset . publish ( { spaceId : sdk . ids . space , assetId : processedAsset . sys . id } , processedAsset ) ;
62
69
63
70
sdk . notifier . success ( 'Image saved to media library' ) ;
0 commit comments