UNPKG

oidc-client-rx

Version:

ReactiveX enhanced OIDC and OAuth2 protocol support for browser-based JavaScript applications

29 lines (28 loc) 930 B
import { createContext, createElement, useContext, useMemo } from "react"; import { OidcSecurityService } from "../../oidc.security.service.js"; const InjectorContextVoidInjector = { get: (_token, _notFoundValue)=>{ throw new Error("Please wrap with a InjectorContext.Provider first"); } }; const InjectorContext = createContext(InjectorContextVoidInjector); function InjectorProvider({ injector, ...props }) { return createElement(InjectorContext, { ...props, value: injector }); } function useInjector() { return useContext(InjectorContext); } function useOidcClient() { const injector = useInjector(); const oidcSecurityService = useMemo(()=>injector.get(OidcSecurityService), [ injector ]); return { injector, oidcSecurityService }; } export { InjectorContext, InjectorContextVoidInjector, InjectorProvider, useInjector, useOidcClient };