import { type ComponentChildren, h } from '@uppy/core/utils/preact' import type { MetaField } from '../../Dashboard.js' interface RenderMetaFieldsProps { computedMetaFields: MetaField[] requiredMetaFields: string[] updateMeta: (newVal: string, fieldId: string) => void form: HTMLFormElement formState: Record } export default function RenderMetaFields( props: RenderMetaFieldsProps, ): ComponentChildren { const { computedMetaFields, requiredMetaFields, updateMeta, form, formState, } = props const fieldCSSClasses = { text: 'uppy-u-reset uppy-c-textInput uppy-Dashboard-FileCard-input', } return computedMetaFields.map((field) => { const id = `uppy-Dashboard-FileCard-input-${field.id}` const required = requiredMetaFields.includes(field.id) return (
{field.render !== undefined ? ( field.render( { value: formState[field.id], onChange: (newVal) => updateMeta(newVal, field.id), fieldCSSClasses, required, form: form.id, }, h, ) ) : ( updateMeta((ev.target as HTMLInputElement).value, field.id) } data-uppy-super-focusable /> )}
) }) }