synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
31 lines • 1.77 kB
TypeScript
import { TwoFactorAuthErrorResponse } from '@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse';
import { PropsWithChildren } from 'react';
import { SynapseContextType } from '../../context';
export type ApplicationSessionManagerProps = PropsWithChildren<{
/** The realm that an unauthenticated user should be signed in to. Defaults to "0", the public Synapse realm */
defaultRealmId?: string;
downloadCartPageUrl?: string;
maxAge?: number;
/** Called if the user is not authenticated when the session is initialized. Can be used to trigger an error if authentication is expected. */
onMissingExpectedAuthentication?: () => void;
onTwoFactorAuthResetThroughSSO?: (twoFactorAuthSSOError: TwoFactorAuthErrorResponse, twoFaResetToken: string) => void;
appId?: SynapseContextType['appId'];
requireAuthentication?: boolean;
}>;
/**
* The ApplicationSessionManager will manage Synapse user session in an app. The goal is that any custom app should
* just be able to add this component near the top of its component tree and have the full Synapse login lifecycle managed
* while exposing minimal complexity to the app itself.
*
* Custom per-app behavior should be customized with generalizable props to this component.
*
* The session data can be accessed with useApplicationSessionContext.
*
* This component must be called within a react-router Router. ApplicationSessionManager also wraps all of its children
* in a SynapseContextProvider.
* @param props
* @constructor
*/
export declare function ApplicationSessionManager(props: ApplicationSessionManagerProps): import("react/jsx-runtime").JSX.Element;
export default ApplicationSessionManager;
//# sourceMappingURL=ApplicationSessionManager.d.ts.map