UNPKG

@sigi/react

Version:

React bindings for sigi framework

21 lines 1.19 kB
import { __read, __spreadArray } from "tslib"; import { jsx as _jsx } from "react/jsx-runtime"; import { rootInjector } from '@sigi/di'; import { createContext, useContext, useMemo, memo } from 'react'; export var _InjectableContext = createContext(rootInjector); export var InjectionProvidersContext = memo(function (_a) { var _b = _a.providers, providers = _b === void 0 ? [] : _b, children = _a.children; var parentInjector = useContext(_InjectableContext); var childInjectableFactory = useMemo(function () { return parentInjector.createChild(providers); }, __spreadArray([parentInjector], __read(providers), false)); return _jsx(_InjectableContext.Provider, { value: childInjectableFactory, children: children }); }); export function useInstance(provider) { var childInjector = useContext(_InjectableContext); return childInjector.getInstance(provider); } export function useServerInstance(provider) { var _a; var childInjector = useContext(_InjectableContext); return ((_a = childInjector.serverCache) === null || _a === void 0 ? void 0 : _a.get(provider)) || childInjector.getInstance(provider); } //# sourceMappingURL=injectable-context.js.map