@leancodepl/kratos
Version:
Headless React components library for building Ory Kratos authentication flows
59 lines (58 loc) • 2.13 kB
TypeScript
import { QueryClient } from "@tanstack/react-query";
import { FrontendApi } from "../kratos";
import { TraitsConfig } from "../utils";
import { IdentityWithTypedTraits, SessionWithTypedUserTraits } from "./types";
export type BaseSessionManagerContructorProps = {
queryClient: QueryClient;
api: FrontendApi;
};
/**
* Manages Ory Kratos session and identity state with React Query integration.
*
* @param queryClient - React Query `QueryClient` instance for caching and fetching session data
* @param api - Ory Kratos `FrontendApi` instance for session and identity requests
* @example
* ```typescript
* import { QueryClient } from "@tanstack/react-query";
* import { FrontendApi } from "../kratos";
* import { BaseSessionManager } from "./baseSessionManager";
*
* const queryClient = new QueryClient();
* const api = new FrontendApi();
* const sessionManager = new BaseSessionManager({ queryClient, api });
* ```
*/
export declare class BaseSessionManager<TTraitsConfig extends TraitsConfig> {
queryClient: QueryClient;
api: FrontendApi;
getSession: () => Promise<SessionWithTypedUserTraits<TTraitsConfig> | undefined>;
getIdentity: () => Promise<IdentityWithTypedTraits<TTraitsConfig> | undefined>;
getUserId: () => Promise<string | undefined>;
isLoggedIn: () => Promise<boolean>;
useSession: () => {
session: SessionWithTypedUserTraits<TTraitsConfig> | undefined;
isLoading: boolean;
error: Error | null;
};
useIdentity: () => {
isLoading: boolean;
error: Error | null;
identity: IdentityWithTypedTraits<TTraitsConfig> | undefined;
};
useUserId: () => {
isLoading: boolean;
error: Error | null;
userId: string | undefined;
};
useIsLoggedIn: () => {
isLoggedIn: boolean | undefined;
isLoading: boolean;
error: Error | null;
};
useIsAal2Required: () => {
isAal2Required: boolean | undefined;
isLoading: boolean;
};
checkIfLoggedIn: () => Promise<void>;
constructor({ queryClient, api }: BaseSessionManagerContructorProps);
}