/* eslint-disable no-use-before-define */ /* eslint-disable import/no-extraneous-dependencies */ import React, { useCallback } from 'react'; import { Props as UploadFieldType } from 'payload/dist/admin/components/forms/field-types/Upload/types'; import UploadInput from 'payload/dist/admin/components/forms/field-types/Upload/Input'; import { useField, useWatchForm } from 'payload/components/forms'; import { FieldType, Options } from 'payload/dist/admin/components/forms/useField/types'; import { generateMetaImage } from '../utilities/generateMetaImage'; import { Pill } from '../ui/Pill'; import { useConfig } from '@payloadcms/config-provider'; export const MetaImage: React.FC = (props) => { const { label, relationTo, fieldTypes, name } = props; const field: FieldType = useField(props as Options); const { fields } = useWatchForm(); const { value, setValue, showError } = field; const regenerateImage = useCallback(() => { const generatedImage = generateMetaImage(fields); setValue(generatedImage); }, [ fields, setValue, ]); console.log(value); const hasImage = Boolean(value); const config = useConfig(); const { collections, serverURL, routes: { api, } = {}, } = config const collection = collections?.find((coll) => coll.slug === relationTo) || undefined; return (
{label}   —  
Auto-generation will retrieve the selected hero image.
{ if (incomingImage !== null) { const { id: incomingID } = incomingImage; setValue(incomingID); } else { setValue(null) } }} label={null} showError={showError} api={api} collection={collection} serverURL={serverURL} style={{ marginBottom: 0 }} />
); };