UNPKG

@sigi/react

Version:

React bindings for sigi framework

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