informed
Version:
A lightweight framework and utility for building powerful forms in React applications
27 lines (23 loc) • 1.04 kB
JavaScript
import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.js';
import React from 'react';
import { useFormController } from '../hooks/useFormController.js';
var FormComponents = function FormComponents(_ref) {
var components = _ref.components;
// Get the field map off the forms context
var _useFormController = useFormController(),
fieldMap = _useFormController.fieldMap,
getOptions = _useFormController.getOptions;
// Grab the schema
var options = getOptions();
if (!components) return null;
return components.map(function (comp, i) {
var _fieldMap$componentTy;
var componentType = comp['ui:control'],
props = comp['ui:props'];
var Component = (_fieldMap$componentTy = fieldMap[componentType]) !== null && _fieldMap$componentTy !== void 0 ? _fieldMap$componentTy : options.components ? options.components[componentType] : null;
return /*#__PURE__*/React.createElement(Component, _extends({
key: "ui-comp-".concat(i)
}, props));
});
};
export { FormComponents };