@cosva-lab/form-builder
Version:
React form builder.
55 lines (53 loc) • 1.81 kB
JavaScript
const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
const require_Inputs = require('./Inputs.cjs');
let react = require("react");
react = require_runtime.__toESM(react);
let react_is = require("react-is");
react_is = require_runtime.__toESM(react_is);
let mobx_react = require("mobx-react");
//#region src/FieldRender.tsx
const FieldRenderObserver = ({ component, propsForm }) => {
let FieldComponent = component;
try {
FieldComponent = (0, mobx_react.observer)(component);
} catch (error) {}
return /* @__PURE__ */ react.default.createElement(FieldComponent, propsForm);
};
var FieldRender = class extends react.default.PureComponent {
constructor(..._args) {
super(..._args);
this.onChangeField = (e, callback) => {
const { onChangeField } = this.props;
onChangeField === null || onChangeField === void 0 || onChangeField(e, callback);
};
}
render() {
const { field, globalProps } = this.props;
const { component: Component, render, type } = field;
const propsForm = {
field,
globalProps,
onChangeField: this.onChangeField
};
const formInput = /* @__PURE__ */ react.default.createElement(require_Inputs.default, propsForm);
if (render) return render({
children: formInput,
props: propsForm
});
if (type === "component") {
if (Component) Component.displayName = `[fields.${field.name.toString()}].component`;
if (react.default.isValidElement(Component)) return /* @__PURE__ */ react.default.createElement(Component.type, {
...Component.props,
...propsForm
});
if (react_is.isValidElementType(Component)) return /* @__PURE__ */ react.default.createElement(FieldRenderObserver, {
component: Component,
propsForm
});
return null;
}
return formInput;
}
};
//#endregion
exports.default = FieldRender;