UNPKG

@funkit/connect

Version:

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

84 lines (83 loc) 3.41 kB
import type { DirectExecution } from '@funkit/api-base'; import { type RecentDepositsApiQueryParams } from '@funkit/connect-core'; import type { UseQueryResult } from '@tanstack/react-query'; import { type PurifiedCheckoutHistoryItem } from '../../utils/purifyCheckoutHistoryItem'; type RecentDepositsApiQuery = Omit<RecentDepositsApiQueryParams, 'logger'>; type DefaultDEQueryKey = 'apiKey' | 'userId' | 'refreshIntervalMs'; export type RecentDEQuerySimplified = { isVisible: boolean; fetchSize?: number; }; /** * @returns raw direct executions for the current user (no filtering or transforms applied) */ export declare const useRecentDeposits: ({ isVisible, fetchSize, }: RecentDEQuerySimplified) => UseQueryResult<DirectExecution[]>; /** * Full explicit-params version of `useRecentDeposits` for use outside FunkitProvider context. * Used by SDK wrappers. */ interface RecentDirectExecutionsQuery extends RecentDepositsApiQuery { cutOffTimeMs?: number; /** * Optional filter function to further refine which deposits are returned. * WARNING: Must be a stable reference (wrap in useMemo), otherwise the hook will constantly re-render. * @param de - The DirectExecution to filter * @returns true to include the deposit, false to exclude it */ memoizedFilterFunc?: (de: DirectExecution) => boolean; } /** * Hook for SDK users to fetch recent deposits/direct executions with automatic context integration. * * **Requirements**: Must be used inside FunkitProvider context as it automatically retrieves: * - API key, User ID, Refresh interval from Fun * * Returns checkout history items * * @param query - Simplified query parameters (excludes apiKey, userId, refreshIntervalMs) * @returns Object with `data` property containing array of purified direct executions or undefined if not loaded * * @example * ```tsx * function MyComponent() { * const { data: recentDeposits } = useFunkitRecentDeposits({ * isVisible: true, * fetchSize: 10, * cutOffTimeMs: 24 * 60 * 60 * 1000, // Last 24 hours * }) * return <div>{recentDeposits?.length} recent deposits</div> * } * ``` */ export declare function useFunkitRecentDeposits(query: Omit<RecentDirectExecutionsQuery, DefaultDEQueryKey>): { data: PurifiedCheckoutHistoryItem[] | undefined; }; /** * Implementation hook for SDK users to fetch recent deposits with explicit parameters. * * **Requirements**: Does NOT require FunkitProvider context. All parameters must be provided explicitly. * This is useful for custom implementations or when using outside the standard Funkit provider hierarchy. * * Returns purified checkout history items * * @param query - Complete query parameters including apiKey, userId, and refreshIntervalMs * @returns Object with `data` property containing array of purified direct executions or undefined if not loaded * * @example * ```tsx * function MyCustomComponent() { * const { data: recentDeposits } = useFunkitRecentDepositsImpl({ * isVisible: true, * apiKey: 'your-api-key', * userId: 'user-wallet-address', * refreshIntervalMs: 5000, * fetchSize: 10, * }) * return <div>{recentDeposits?.length} recent deposits</div> * } * ``` */ export declare function useFunkitRecentDepositsImpl(query: RecentDirectExecutionsQuery): { data: PurifiedCheckoutHistoryItem[] | undefined; }; export {};