@appbuckets/react-ui-core
Version:
Core utilities built for AppBuckets React UI Framework
71 lines (63 loc) • 1.78 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var invariant = require('tiny-invariant');
function _interopDefaultLegacy(e) {
return e && typeof e === 'object' && 'default' in e ? e : { default: e };
}
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(
n,
k,
d.get
? d
: {
enumerable: true,
get: function () {
return e[k];
},
}
);
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/ _interopNamespace(React);
var invariant__default = /*#__PURE__*/ _interopDefaultLegacy(invariant);
/* --------
* Context Builder
* -------- */
function contextBuilder(initialContext, name) {
/** Create the base Context */
var BaseContext = React__namespace.createContext(initialContext);
/** Init the Hook Function */
function useContextHook() {
/** Get the value of the context */
var ctxValue = React__namespace.useContext(BaseContext);
/** Assert value exists */
invariant__default['default'](
ctxValue !== undefined,
'use'.concat(
name || 'Context',
'() hook must be invoked inside its right Context'
)
);
/** Return the Context */
return ctxValue;
}
/** Return context tools */
return {
hook: useContextHook,
Provider: BaseContext.Provider,
Consumer: BaseContext.Consumer,
};
}
exports.contextBuilder = contextBuilder;