@jvanderen1/unstated-next
Version:
Up-to-date version of everyone's favorite state management library unstated-next
72 lines (54 loc) • 2.05 kB
JavaScript
import {createContext as $dWZG9$createContext, useContext as $dWZG9$useContext} from "react";
import {jsx as $dWZG9$jsx} from "react/jsx-runtime";
import $dWZG9$proptypes from "prop-types";
// Internal
// --------
function $8e35ca3e4b5b07b7$export$500fbc0cd14cdbaa({ Context: Context , useHook: useHook }) {
const providerPropTypes = {
children: $dWZG9$proptypes.node.isRequired,
initialState: $dWZG9$proptypes.any
};
const providerDefaultProps = {
initialState: undefined
};
function Provider({ children: children , initialState: initialState }) {
const value = useHook(initialState);
return(/*#__PURE__*/ $dWZG9$jsx(Context.Provider, {
value: value,
children: children
}));
}
Provider.propTypes = providerPropTypes;
Provider.defaultProps = providerDefaultProps;
return Provider;
}
// Internal
// --------
const $22e38b4674e471ee$export$6e22c362a0406a2c = Symbol('EMPTY');
// Internal
// --------
function $fd9256a343ba93a8$export$959cc27f5138a507({ Context: Context }) {
return ()=>{
const value = $dWZG9$useContext(Context);
if (value === $22e38b4674e471ee$export$6e22c362a0406a2c) throw new Error(`Component must be wrapped with <${Context.displayName}.Provider>`);
return value;
};
}
// Internal
// --------
function $9edf38e8c240aad9$export$26ae5ca175b4ec5a(useHook, options) {
const ContainerContext = /*#__PURE__*/ $dWZG9$createContext($22e38b4674e471ee$export$6e22c362a0406a2c);
ContainerContext.displayName = options?.displayName ? options.displayName : 'ContainerContext';
const Provider = $8e35ca3e4b5b07b7$export$500fbc0cd14cdbaa({
Context: ContainerContext,
useHook: useHook
});
const useContext = $fd9256a343ba93a8$export$959cc27f5138a507({
Context: ContainerContext
});
return {
Provider: Provider,
useContext: useContext
};
}
export {$9edf38e8c240aad9$export$26ae5ca175b4ec5a as createContainer};