oidc-client-rx
Version:
ReactiveX enhanced OIDC and OAuth2 protocol support for browser-based JavaScript applications
29 lines (28 loc) • 930 B
JavaScript
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 };