informed
Version:
A lightweight framework and utility for building powerful forms in React applications
47 lines (41 loc) • 1.42 kB
JavaScript
import { slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
import { useEffect } from 'react';
import { useFormController } from '../hooks/useFormController.js';
import { Debug } from '../debug.js';
var logger = Debug('informed:FormField' + '\t');
var UpdateFields = function UpdateFields(_ref) {
var schema = _ref.schema;
var formController = useFormController();
// When we render add props
useEffect(function () {
// Example schema
// schema = {
// product: {
// oneOf: [
// { const: '', title: '- Select -' },
// { const: 'modelS', title: 'Model S' },
// { const: 'modelX', title: 'Model X' },
// { const: 'model3', title: 'Model 3' }
// ]
// }
// }
Object.entries(schema).forEach(function (_ref2) {
var _ref3 = _slicedToArray(_ref2, 2),
key = _ref3[0],
value = _ref3[1];
logger("update-combine ".concat(key), value);
formController.emitter.emit('update-combine', key, value);
});
// When we unmount take away props
return function () {
Object.entries(schema).forEach(function (_ref4) {
var _ref5 = _slicedToArray(_ref4, 1),
key = _ref5[0];
logger("update-remove ".concat(key));
formController.emitter.emit('update-remove', key);
});
};
}, []);
return null;
};
export { UpdateFields };