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