UNPKG

@hhgtech/hhg-components

Version:
80 lines (79 loc) 3.49 kB
import { UserInfo } from "../../types"; export type SSOV2StoreType = { userInfo?: UserInfo; abTestFlow?: 'A' | 'B'; setABTestFlow: (flow?: 'A' | 'B') => void; setUserInfo: (userInfo?: UserInfo) => void; isOpen: boolean; setOpen: (isOpen: boolean) => void; returnUrl?: string; setReturnUrl: (returnUrl: string) => void; mounted?: boolean; setMounted: (mounted: boolean) => void; source?: string; setSource: (source: string) => void; setupSource?: string; setSetupSource: (source: string) => void; triggerLogin: (params?: { source?: string; returnUrl?: string; legalTextType?: 'community' | 'default'; forceReloadOnClose?: boolean; }) => void; /** WhatsApp-only flow; always opens (no bearer-token short-circuit). */ triggerWhatsappLogin: (params?: { source?: string; returnUrl?: string; /** Prefer payment or product URL for `referrer` on send-OTP API. */ referrer?: string; forceReloadOnClose?: boolean; /** * Logged-in user still needs WhatsApp verification (`whatsapp_verify` from profile). * With `phone_number` + `area_code`: skip to OTP; Bearer `sent-otp` + `whatsapp-verify-code`. * With `isAlreadyLogin` only (no phone/area): start at phone step; send uses Bearer `sms-social/whatsapp/sent-otp`. */ isAlreadyLogin?: boolean; phone_number?: string; area_code?: string; }) => void; triggerCareEmailPhoneVerify: (params?: { source?: string; returnUrl?: string; skipForceSetup?: boolean; legalTextType?: 'community' | 'default'; email?: string; }) => void; triggerCommunityEmailVerify: (params?: { source?: string; returnUrl?: string; skipForceSetup?: boolean; legalTextType?: 'community' | 'default'; forceReloadOnClose?: boolean; }) => void; overrideClose?: () => void; onCloseProp?: () => void; setOnCloseProp: (onClose: () => void) => void; forceReloadOnClose?: boolean; flowData?: { method?: 'email' | 'sms' | 'zalo' | 'google' | 'facebook' | 'phone' | 'whatsapp'; flow?: 'login' | 'signup'; isVerifyPhone?: boolean; /** These data is fetched from API to use in the email flow */ metaData?: { is_birthday?: boolean; is_gender?: boolean; is_name?: boolean; is_pass?: boolean; is_phone_verified?: boolean; }; }; }; export declare const useSSOV2Store: import("zustand").UseBoundStore<import("zustand").StoreApi<SSOV2StoreType>>; export declare const redirect: (returnUrl?: string, source?: string, forceReload?: boolean) => boolean; export declare const IS_SSOV2_ENABLED: (locale?: string) => boolean; export declare const getSSOFlowFromUserProfile: (userInfo: UserInfo) => any; export declare const isUserFinishedSetup: (userInfo: UserInfo) => any; export declare const isFlowFinishedSetup: (flowData: SSOV2StoreType['flowData']) => boolean; export declare const isUserNeedPassword: (flowData?: SSOV2StoreType['flowData'], userInfo?: UserInfo) => boolean; export declare const isPhoneNotVerifedYet: (userInfo?: UserInfo) => boolean; export declare const isLoginWithPhoneNotVerifedYet: (flowData?: SSOV2StoreType['flowData'], userInfo?: UserInfo) => boolean;