UNPKG

@wener/ui

Version:

30 lines 1.18 kB
"use strict"; 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