informed
Version:
A lightweight framework and utility for building powerful forms in React applications
51 lines (43 loc) • 1.58 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
var React = require('react');
var useFormController = require('../hooks/useFormController.js');
var debug = require('../debug.js');
var logger = debug.Debug('informed:FormField' + '\t');
var UpdateFields = function UpdateFields(_ref) {
var schema = _ref.schema;
var formController = useFormController.useFormController();
// When we render add props
React.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 = _rollupPluginBabelHelpers.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 = _rollupPluginBabelHelpers.slicedToArray(_ref4, 1),
key = _ref5[0];
logger("update-remove ".concat(key));
formController.emitter.emit('update-remove', key);
});
};
}, []);
return null;
};
exports.UpdateFields = UpdateFields;