@assistant-ui/react
Version:
TypeScript/React library for AI Chat
21 lines (19 loc) • 655 B
text/typescript
import { useMemo } from "react";
import type {
AssistantTransportCommand,
AssistantTransportState,
AssistantTransportStateConverter,
} from "./types";
import type { ToolExecutionStatus } from "./useToolInvocations";
export function useConvertedState<T>(
converter: AssistantTransportStateConverter<T>,
agentState: T,
pendingCommands: AssistantTransportCommand[],
isSending: boolean,
toolStatuses: Record<string, ToolExecutionStatus>,
): AssistantTransportState {
return useMemo(
() => converter(agentState, { pendingCommands, isSending, toolStatuses }),
[converter, agentState, pendingCommands, isSending, toolStatuses],
);
}