UNPKG

@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
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