UNPKG

react-gsi

Version:

React bindings for the 'Sign in With Google for Web' API

80 lines (68 loc) 3.15 kB
/// <reference types="gsi" /> /// <reference types="react" /> import * as react_jsx_runtime from 'react/jsx-runtime'; import * as react from 'react'; import { ReactNode, PropsWithChildren } from 'react'; declare const GSI_BUTTON_DEFAULT_CONFIGURATION: GsiButtonConfiguration; interface GsiButtonProps { readonly configuration?: GsiButtonConfiguration; readonly fallback?: ReactNode; } declare function GsiButton(props: GsiButtonProps): react_jsx_runtime.JSX.Element; interface UseRenderButtonProps { readonly parent: HTMLElement; readonly configuration: GsiButtonConfiguration; readonly onRender?: () => void; } declare function useRenderButton(props: UseRenderButtonProps): void; type ScriptStatus = ScriptIdleStatus | ScriptLoadingStatus | ScriptLoadedStatus | ScriptErrorStatus; interface ScriptIdleStatus { readonly type: 'idle'; } interface ScriptLoadingStatus { readonly type: 'loading'; } interface ScriptLoadedStatus { readonly type: 'loaded'; readonly event: Event; } interface ScriptErrorStatus { readonly type: 'error'; readonly event: ErrorEvent; } declare function isIdle(status: ScriptStatus): status is ScriptIdleStatus; declare function isLoading(status: ScriptStatus): status is ScriptLoadingStatus; declare function isLoaded(status: ScriptStatus): status is ScriptLoadedStatus; declare function isError(status: ScriptStatus): status is ScriptErrorStatus; type ScriptFallback<T extends ScriptStatus> = (status: T) => ReactNode; interface GsiClientProps { readonly fallback?: ReactNode; readonly idle?: ScriptFallback<ScriptIdleStatus>; readonly loading?: ScriptFallback<ScriptLoadingStatus>; readonly error?: ScriptFallback<ScriptErrorStatus>; } declare function GsiClient(props: PropsWithChildren<GsiClientProps>): react_jsx_runtime.JSX.Element; interface UseScriptReturn { readonly status: ScriptStatus; } declare const GOOGLE_GSI_CLIENT_URL = "https://accounts.google.com/gsi/client"; interface UseGsiClientProps { readonly src?: string; } declare function useGsiClient(props?: UseGsiClientProps): UseScriptReturn; interface UseOneTapProps { readonly show?: boolean; readonly onNotify?: MomentListener; } interface UseOneTapReturn { readonly prompt: () => void; readonly cancel: () => void; } declare function useOneTap(props?: UseOneTapProps): UseOneTapReturn; interface IdTokenProviderProps { readonly configuration: IdConfiguration; } declare function IdTokenProvider(props: PropsWithChildren<IdTokenProviderProps>): react_jsx_runtime.JSX.Element; declare const IdTokenContext: react.Context<CredentialResponse | null>; declare function useIdToken(): CredentialResponse | null; export { GOOGLE_GSI_CLIENT_URL, GSI_BUTTON_DEFAULT_CONFIGURATION, GsiButton, GsiButtonProps, GsiClient, GsiClientProps, IdTokenContext, IdTokenProvider, IdTokenProviderProps, ScriptErrorStatus, ScriptFallback, ScriptIdleStatus, ScriptLoadedStatus, ScriptLoadingStatus, ScriptStatus, UseGsiClientProps, UseOneTapProps, UseOneTapReturn, UseRenderButtonProps, isError, isIdle, isLoaded, isLoading, useGsiClient, useIdToken, useOneTap, useRenderButton };