diff --git a/packages/plugin-seo/src/fields/MetaImage/MetaImageComponent.tsx b/packages/plugin-seo/src/fields/MetaImage/MetaImageComponent.tsx index 4001a1942..86cdcaccc 100644 --- a/packages/plugin-seo/src/fields/MetaImage/MetaImageComponent.tsx +++ b/packages/plugin-seo/src/fields/MetaImage/MetaImageComponent.tsx @@ -49,7 +49,7 @@ export const MetaImageComponent: React.FC = (props) => { setValue, showError, value, - }: FieldType = useField() + }: FieldType = useField() const { t } = useTranslation() @@ -92,7 +92,15 @@ export const MetaImageComponent: React.FC = (props) => { const { result: generatedImage } = await genImageResponse.json() - setValue(generatedImage || '') + // string ids, number ids or nullish values + let newValue: null | number | string | undefined = generatedImage + // non-nullish resolved relations + if (typeof generatedImage === 'object' && generatedImage && 'id' in generatedImage) { + newValue = generatedImage.id + } + + // coerce to an empty string for falsy (=empty) values + setValue(newValue || '') }, [ hasGenerateImageFn, serverURL, diff --git a/packages/plugin-seo/src/types.ts b/packages/plugin-seo/src/types.ts index 1b3c1ef8c..02dc4e0e3 100644 --- a/packages/plugin-seo/src/types.ts +++ b/packages/plugin-seo/src/types.ts @@ -55,7 +55,7 @@ export type GenerateImage = ( locale?: string req: PayloadRequest } & PartialDocumentInfoContext, -) => Promise | string +) => { id: number | string } | number | Promise<{ id: number | string } | number | string> | string export type GenerateURL = ( args: {