@propelauth/react
Version:
A React library for managing authentication, backed by PropelAuth
38 lines (37 loc) • 1.35 kB
TypeScript
import { AccessHelper, OrgHelper, User, UserClass } from "@propelauth/javascript";
import React from "react";
import { Subtract } from "utility-types";
import { Tokens } from "./AuthContext";
export declare type WithLoggedInAuthInfoProps = {
isLoggedIn: true;
accessToken: string;
getAccessToken: () => Promise<string>;
user: User;
userClass: UserClass;
orgHelper: OrgHelper;
accessHelper: AccessHelper;
isImpersonating: boolean;
impersonatorUserId?: string;
refreshAuthInfo: () => Promise<void>;
tokens: Tokens;
accessTokenExpiresAtSeconds: number;
};
export declare type WithNotLoggedInAuthInfoProps = {
isLoggedIn: false;
accessToken: null;
getAccessToken: () => Promise<undefined>;
user: null;
userClass: null;
orgHelper: null;
accessHelper: null;
isImpersonating: false;
impersonatorUserId: null;
refreshAuthInfo: () => Promise<void>;
tokens: Tokens;
accessTokenExpiresAtSeconds: null;
};
export declare type WithAuthInfoProps = WithLoggedInAuthInfoProps | WithNotLoggedInAuthInfoProps;
export interface WithAuthInfoArgs {
displayWhileLoading?: React.ReactElement;
}
export declare function withAuthInfo<P extends WithAuthInfoProps>(Component: React.ComponentType<P>, args?: WithAuthInfoArgs): React.ComponentType<Subtract<P, WithAuthInfoProps>>;