@funkit/connect
Version:
Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.
33 lines (32 loc) • 1.48 kB
TypeScript
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>;
};