@difizen/mana-core
Version:
31 lines • 1.08 kB
JavaScript
import { getOrigin, ObservableContext, useInject } from '@difizen/mana-observable';
import * as React from 'react';
import { DataContextManager } from "./data-context-manager";
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
var DataContextRender = /*#__PURE__*/React.memo(function DataContextRender(props) {
var context = props.context,
children = props.children;
if (context) {
return /*#__PURE__*/_jsx(ObservableContext.Provider, {
value: {
getContainer: function getContainer() {
return context.container;
}
},
children: children
});
}
return /*#__PURE__*/_jsx(_Fragment, {});
}, function (prev, next) {
return prev.context === next.context;
});
export var DataContext = function DataContext(props) {
var contextKey = props.contextKey,
children = props.children;
var dataContextManager = useInject(DataContextManager);
var ctx = dataContextManager.getContext(getOrigin(contextKey));
return /*#__PURE__*/_jsx(DataContextRender, {
context: ctx,
children: children
});
};