@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 $bb34k$react = require("react");
var $bb34k$reactjsxruntime = require("react/jsx-runtime");
var $bb34k$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", () => $c507ebc6b0633449$export$26ae5ca175b4ec5a);
// Internal
// --------
function $4907e6a5eb620daf$export$500fbc0cd14cdbaa({ Context: Context , useHook: useHook }) {
const providerPropTypes = {
children: ($parcel$interopDefault($bb34k$proptypes)).node.isRequired,
initialState: ($parcel$interopDefault($bb34k$proptypes)).any
};
const providerDefaultProps = {
initialState: undefined
};
function Provider({ children: children , initialState: initialState }) {
const value = useHook(initialState);
return(/*#__PURE__*/ $bb34k$reactjsxruntime.jsx(Context.Provider, {
value: value,
children: children
}));
}
Provider.propTypes = providerPropTypes;
Provider.defaultProps = providerDefaultProps;
return Provider;
}
// Internal
// --------
const $a8317c53d84dab15$export$6e22c362a0406a2c = Symbol('EMPTY');
// Internal
// --------
function $3b39efca1202bc57$export$959cc27f5138a507({ Context: Context }) {
return ()=>{
const value = $bb34k$react.useContext(Context);
if (value === $a8317c53d84dab15$export$6e22c362a0406a2c) throw new Error(`Component must be wrapped with <${Context.displayName}.Provider>`);
return value;
};
}
// Internal
// --------
function $c507ebc6b0633449$export$26ae5ca175b4ec5a(useHook, options) {
const ContainerContext = /*#__PURE__*/ $bb34k$react.createContext($a8317c53d84dab15$export$6e22c362a0406a2c);
ContainerContext.displayName = options?.displayName ? options.displayName : 'ContainerContext';
const Provider = $4907e6a5eb620daf$export$500fbc0cd14cdbaa({
Context: ContainerContext,
useHook: useHook
});
const useContext = $3b39efca1202bc57$export$959cc27f5138a507({
Context: ContainerContext
});
return {
Provider: Provider,
useContext: useContext
};
}