UNPKG

@future-widget-lab/react-context-provider

Version:

A helper for creating React providers with an associated custom hook.

3 lines (2 loc) 1.04 kB
"use strict";function e(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,t}var t=e(require("react")),r=["children"];exports.createContextProvider=function(e){var n=e.name,o=e.useGetState,i=t.createContext({}),u=function(e){var n=e.children,u=function(e,t){if(null==e)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,r),c=o(u);return t.createElement(i.Provider,{value:c},"function"==typeof n?n(c):n)},c=function(e){var r=e.name,n=e.context,o=function(){var e=t.useContext(n);if(!e)throw new Error("Trying to use "+r+" hook out of its context.");return e};return Object.defineProperty(o,"name",{value:"use-"+r+"-context-provider"}),o}({name:n,context:i});return u.displayName=n+"-context-provider",{ContextProvider:u,hook:c}}; //# sourceMappingURL=react-context-provider.cjs.production.min.js.map