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