import type { Props } from './types'; import { mapFieldTypeElement } from '@/config/elements'; import { useFormStore } from '@/store/ius/form'; import { useEffect } from 'react'; import { ElementContainer } from 'ui'; function compatMetadata(metaData: Props['metaData']) { const { comment, ...meta } = metaData; comment.fieldType = 'TEXTAREA'; return { ...meta, comment }; } export function Elements({ data, metaData }: Props) { const { init, setValue, validation, values } = useFormStore(); useEffect(() => { init(data); }, [data, init]); return (
{Object.keys(compatMetadata(metaData)).map((name) => { const { fieldType, label, max, min = 0, visible, ...props } = metaData[name]; if (!visible) return false; const Element = mapFieldTypeElement[fieldType]; return ( { setValue({ name, value: fieldType === 'CHECKBOX' ? e.target.checked : e.target.value, }); }} {...props} /> ); })}
); }