@react-form-builder/core
Version:
React JSON Schema Form Builder to create complex, validated, reusable forms with no deep React knowledge required
61 lines (60 loc) • 2.39 kB
JavaScript
import { jsx as i, jsxs as c } from "react/jsx-runtime";
import { useCallback as d, useImperativeHandle as f, useEffect as m, useContext as u } from "react";
import { ComponentState as w } from "../../../stores/ComponentState.js";
import { FormViewerPropsStore as S } from "../../../stores/FormViewerPropsStore.js";
import { Store as v } from "../../../stores/Store.js";
import { StoreProvider as P, StoreContext as C } from "../../../utils/contexts/StoreContext.js";
import { getChildren as x } from "../../../utils/getChildren.js";
import { namedObserver as n } from "../../../utils/namedObserver.js";
import { useDisposable as h } from "../../../utils/useDisposable.js";
import { ComponentTree as V } from "../../ui/ComponentTree.js";
import { ViewerPropsProvider as g } from "./ViewerPropsContext.js";
const D = (o) => {
const { store: e } = o, r = o.props;
return m(() => {
r.onFormDataChange?.(e.formData);
}, [e.formData.data, e.formData.errors]), m(() => {
e.formViewerPropsStore.applyProps(r), e.form.componentTree.state = e.formViewerPropsStore.initialState;
}, [
r.initialData,
r.initialState,
r.view,
r.validators,
r.formValidators,
r.localize,
r.language,
r.actions,
r.errorWrapper,
r.readOnly,
r.disabled,
r.componentWrapper,
r.userContext
]), null;
}, N = n("Notifier", D), F = ({
children: o,
props: { viewerRef: e, ...r },
store: t
}) => (f(e, () => t, [t]), /* @__PURE__ */ c(g, { value: r, children: [
/* @__PURE__ */ i(N, { store: t, props: r }),
/* @__PURE__ */ i(P, { value: t, children: o })
] })), s = n("ExistingStoreProvider", F), R = (o, e, r) => {
function t(a) {
return e.localizeComponent("component", o.dataRoot, a);
}
function l(a, p) {
return x(a, V, p);
}
return new w(o, e, t, l, r);
}, b = ({ children: o, props: e }) => {
const r = d(() => new v(new S(e), R), [e]), t = h(r);
return t ? /* @__PURE__ */ i(s, { props: e, store: t, children: o }) : null;
}, y = n("NewStoreProvider", b), E = (o) => {
const e = u(C);
return e ? /* @__PURE__ */ i(s, { props: o.props, store: e, children: o.children }) : /* @__PURE__ */ i(y, { props: o.props, children: o.children });
}, B = n("ViewerStoreProvider", E);
export {
y as NewStoreProvider,
B as ViewerStoreProvider,
R as defaultComponentStateFactory
};
//# sourceMappingURL=ViewerStoreProvider.js.map