import React, { ComponentType } from 'react'; import Auth0Context, { Auth0ContextInterface } from './auth0-context'; /** * Components wrapped in `withAuth0` will have an additional `auth0` prop */ export interface WithAuth0Props { auth0: Auth0ContextInterface; } /** * ```jsx * class MyComponent extends Component { * render() { * // Access the auth context from the `auth0` prop * const { user } = this.props.auth0; * return
Hello {user.name}!
* } * } * // Wrap your class component in withAuth0 * export default withAuth0(MyComponent); * ``` * * Wrap your class components in this Higher Order Component to give them access to the Auth0Context. * * Providing a context as the second argument allows you to configure the Auth0Provider the Auth0Context * should come from f you have multiple within your application. */ const withAuth0 =

( Component: ComponentType

, context = Auth0Context ): ComponentType> => { return function WithAuth(props): React.JSX.Element { return ( {(auth: Auth0ContextInterface): React.JSX.Element => ( )} ); }; }; export default withAuth0;