UNPKG

@funkit/connect

Version:

Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.

33 lines (32 loc) 1.48 kB
import type { CheckoutModalEvent } from '../hooks/track/CheckoutModalEvent'; import type { useTrack } from '../hooks/track/useTrack'; import type { FunCheckoutStep } from '../modals/CheckoutModal/FunCheckoutStep'; export interface StepQueryMeta extends Record<string, unknown> { /** Checkout steps that depend on this query being loaded */ dependentSteps: FunCheckoutStep[]; /** camelCase identifier for this query, used as key in timing metadata */ name: string; /** Statsig event to emit with this query's individual timing */ timingEvent: CheckoutModalEvent; } export declare function stepQueryMeta(params: { name: string; timingEvent: CheckoutModalEvent; dependentSteps: FunCheckoutStep[]; }): StepQueryMeta; /** * Ensures all React Query dependencies for a checkout step are loaded before * marking the step as ready. Queries opt in via `stepQueryMeta()` in their * query options. * * Emits: * - A per-query Statsig event (the query's `timingEvent`) with duration as value * - A step-level measured event (`fc::ready::*`) with per-query timing metadata * * Steps without dependencies are skipped — no event is emitted and * `isStepReady` is set immediately. */ export declare function useStepQueryReadiness(logEvent: ReturnType<typeof useTrack>['logEvent'], logMeasuredEvent: ReturnType<typeof useTrack>['logMeasuredEvent']): { isStepReady: boolean; ensureStepQueries: (step: FunCheckoutStep) => Promise<void>; };