UNPKG

@llamaindex/ui

Version:

A comprehensive UI component library built with React, TypeScript, and Tailwind CSS for LlamaIndex applications

78 lines (75 loc) 2.47 kB
import { client } from 'llama-cloud-services/api'; export { client as cloudApiClient } from 'llama-cloud-services/api'; import { client as client$1 } from '@llamaindex/workflows-client'; export { createClient, createConfig, client as workflowsClient } from '@llamaindex/workflows-client'; import { createAgentDataClient } from 'llama-cloud-services/beta/agent'; export { createAgentDataClient } from 'llama-cloud-services/beta/agent'; import { createContext, useMemo, useContext } from 'react'; import { jsx } from 'react/jsx-runtime'; // src/lib/clients.ts var ApiContext = createContext(null); function ApiProvider({ children, clients, project }) { const contextValue = useMemo( () => ({ clients, project }), [clients, project] ); return /* @__PURE__ */ jsx(ApiContext.Provider, { value: contextValue, children }); } function createMockClients() { return { workflowsClient: client$1, cloudApiClient: client, agentDataClient: createAgentDataClient({ agentUrlId: "your-agent-url-id", collection: "your-collection" }) }; } function useApiContext() { const context = useContext(ApiContext); if (!context) { throw new Error( "useApiContext must be used within an ApiProvider. Please wrap your component tree with <ApiProvider>." ); } return context; } function useWorkflowsClient() { const { clients } = useApiContext(); if (!clients.workflowsClient) { throw new Error( "No workflows client configured. Please ensure workflowsClient is configured in ApiProvider." ); } return clients.workflowsClient; } function useCloudApiClient() { const { clients } = useApiContext(); if (!clients.cloudApiClient) { throw new Error( "No cloud api client configured. Please ensure cloudApiClient is configured in ApiProvider." ); } return clients.cloudApiClient; } function useAgentDataClient() { const { clients } = useApiContext(); if (!clients.agentDataClient) { throw new Error( "No agent data client configured. Please ensure agentDataClient is configured in ApiProvider." ); } return clients.agentDataClient; } function useApiClients() { const { clients } = useApiContext(); return clients; } function useProject() { const { project } = useApiContext(); return project != null ? project : {}; } export { ApiProvider, createMockClients, useAgentDataClient, useApiClients, useCloudApiClient, useProject, useWorkflowsClient };