UNPKG

@dev-fastn-ai/react-core

Version:

React hooks and components for integrating Fastn AI connector marketplace into your applications. Built on top of @fastn-ai/core with React Query for optimal performance.

58 lines (51 loc) 2.45 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; import * as _tanstack_react_query from '@tanstack/react-query'; import { QueryClient } from '@tanstack/react-query'; import * as _fastn_ai_core from '@fastn-ai/core'; import { FastnConfig, GetConfigurationsInput, GetConfigurationFormInput, ConnectorField, FormData, SelectOption } from '@fastn-ai/core'; export * from '@fastn-ai/core'; declare const FastnProvider: ({ children, config, queryClient, }: { children: React.ReactNode; config: FastnConfig; queryClient?: QueryClient; }) => react_jsx_runtime.JSX.Element; declare const useConfigurations: (input: GetConfigurationsInput) => _tanstack_react_query.UseQueryResult<_fastn_ai_core.Configuration[], Error>; declare const useConfigurationForm: (input: GetConfigurationFormInput) => _tanstack_react_query.UseQueryResult<_fastn_ai_core.ConfigurationForm, Error>; declare const useConnectors: () => _tanstack_react_query.UseQueryResult<_fastn_ai_core.Connector[], Error>; /** * Custom hook to manage async select field options with search, pagination, and error handling using React Query. * * Benefits of React Query caching: * - Automatic caching with configurable stale time (5 minutes) * - Background refetching when data becomes stale * - Deduplication of requests * - Optimistic updates * - Automatic retry on failure * - Cache invalidation and garbage collection * * @param field ConnectorField - The field definition containing optionsSource * @param context FormData - Optional context data to pass to getOptions and loadMore methods * @returns { options, loading, loadingMore, hasNext, query, refresh, search, loadMore, error } * * @example * ```tsx * const { options, loading, loadingMore, hasNext, search, loadMore } = useFieldOptions(field, context); * * // Options are automatically cached and shared across components * // Loading states are handled automatically * // Pagination is managed with infinite query * ``` */ declare function useFieldOptions(field: ConnectorField, context?: FormData | object): { options: SelectOption[]; loading: boolean; loadingMore: boolean; hasNext: boolean; query: string; refresh: () => Promise<void>; search: (query: string) => void; loadMore: () => Promise<void>; totalLoadedOptions: number; error: string | null; }; export { FastnProvider, useConfigurationForm, useConfigurations, useConnectors, useFieldOptions };