UNPKG

@appbuckets/react-ui-core

Version:

Core utilities built for AppBuckets React UI Framework

71 lines (63 loc) 1.78 kB
'use strict'; 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;