@wener/ui
Version:
30 lines • 1.18 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.useContainer = exports.createContainer = void 0;
/// https://github.com/jamiebuilds/unstated-next/blob/master/src/unstated-next.tsx
const react_1 = __importDefault(require("react"));
const EMPTY = Symbol();
function createContainer(useHook) {
const Context = react_1.default.createContext(EMPTY);
function Provider(props) {
const value = useHook(props.initialState);
return react_1.default.createElement(Context.Provider, { value: value }, props.children);
}
function useContainer() {
const value = react_1.default.useContext(Context);
if (value === EMPTY) {
throw new Error('Component must be wrapped with <Container.Provider>');
}
return value;
}
return { Provider, useContainer };
}
exports.createContainer = createContainer;
function useContainer(container) {
return container.useContainer();
}
exports.useContainer = useContainer;
//# sourceMappingURL=unstated.js.map