UNPKG

@kinde-oss/kinde-auth-react

Version:

Kinde React SDK for authentication

73 lines (62 loc) 1.65 kB
import { GeneratePortalUrlParams, LoginMethodParams, UserProfile, } from "@kinde/js-utils"; export enum TimeoutActivityType { preWarning = "preWarning", timeout = "timeout", } export type State = { user?: UserProfile; isLoading: boolean; isAuthenticated: boolean; error?: string | undefined; }; export interface LoginLinkProps extends Partial<LoginMethodParams>, React.ButtonHTMLAttributes<HTMLButtonElement> { children: React.ReactNode; } export interface RegisterLinkProps extends Partial<LoginMethodParams>, React.ButtonHTMLAttributes<HTMLButtonElement> { children: React.ReactNode; } export interface LogoutLinkProps extends React.ButtonHTMLAttributes<HTMLButtonElement> { children: React.ReactNode; redirectUrl?: string; allSessions?: boolean; } export interface PortalLinkProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Partial<Omit<GeneratePortalUrlParams, "domain">> { children: React.ReactNode; } export type ErrorProps = { error: string; errorDescription: string; }; export type LogoutOptions = { allSessions?: boolean; redirectUrl?: string; }; export type PopupOptions = { width?: number; height?: number; left?: number; top?: number; }; /** * Activity timeout configuration. * ⚠️ Must be memoized or defined outside component to prevent effect re-runs. * @example * const config = useMemo(() => ({ timeoutMinutes: 30 }), []); * <KindeProvider activityTimeout={config} ... /> */ export type ActivityTimeoutConfig = { timeoutMinutes: number; preWarningMinutes?: number; onTimeout?: (type: TimeoutActivityType) => void | Promise<void>; };