@jvanderen1/unstated-next
Version:
Up-to-date version of everyone's favorite state management library unstated-next
79 lines (60 loc) • 2.32 kB
JavaScript
var $8GKOF$react = require("react");
var $8GKOF$reactjsxruntime = require("react/jsx-runtime");
var $8GKOF$proptypes = require("prop-types");
function $parcel$export(e, n, v, s) {
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
}
function $parcel$interopDefault(a) {
return a && a.__esModule ? a.default : a;
}
$parcel$export(module.exports, "createContainer", () => $e33afb5a56273222$export$26ae5ca175b4ec5a);
// Internal
// --------
function $be2556578f3fdd15$export$500fbc0cd14cdbaa({ Context: Context , useHook: useHook }) {
const providerPropTypes = {
children: ($parcel$interopDefault($8GKOF$proptypes)).node.isRequired,
initialState: ($parcel$interopDefault($8GKOF$proptypes)).any
};
const providerDefaultProps = {
initialState: undefined
};
function Provider({ children: children , initialState: initialState }) {
const value = useHook(initialState);
return(/*#__PURE__*/ $8GKOF$reactjsxruntime.jsx(Context.Provider, {
value: value,
children: children
}));
}
Provider.propTypes = providerPropTypes;
Provider.defaultProps = providerDefaultProps;
return Provider;
}
// Internal
// --------
const $cc2a7f243c1310e0$export$6e22c362a0406a2c = Symbol('EMPTY');
// Internal
// --------
function $5c1d775091f478f4$export$959cc27f5138a507({ Context: Context }) {
return ()=>{
const value = $8GKOF$react.useContext(Context);
if (value === $cc2a7f243c1310e0$export$6e22c362a0406a2c) throw new Error(`Component must be wrapped with <${Context.displayName}.Provider>`);
return value;
};
}
// Internal
// --------
function $e33afb5a56273222$export$26ae5ca175b4ec5a(useHook, options) {
const ContainerContext = /*#__PURE__*/ $8GKOF$react.createContext($cc2a7f243c1310e0$export$6e22c362a0406a2c);
ContainerContext.displayName = options?.displayName ? options.displayName : 'ContainerContext';
const Provider = $be2556578f3fdd15$export$500fbc0cd14cdbaa({
Context: ContainerContext,
useHook: useHook
});
const useContext = $5c1d775091f478f4$export$959cc27f5138a507({
Context: ContainerContext
});
return {
Provider: Provider,
useContext: useContext
};
}