@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
TypeScript
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 };