rdesign/frontend/node_modules/@copilotkit/a2ui-renderer/dist/react-renderer/hooks/useA2UI.mjs

46 lines
1.2 KiB
JavaScript

import { useA2UIActions, useA2UIState } from "../core/A2UIProvider.mjs";
//#region src/react-renderer/hooks/useA2UI.ts
/**
* Main API hook for A2UI. Provides methods to process messages
* and access surface state.
*
* Note: This hook subscribes to state changes. Components using this
* will re-render when the A2UI state changes. For action-only usage
* (no re-renders), use useA2UIActions() instead.
*
* @returns Object with message processing and surface access methods
*
* @example
* ```tsx
* function ChatApp() {
* const { processMessages, getSurface } = useA2UI();
*
* useEffect(() => {
* const ws = new WebSocket('wss://agent.example.com');
* ws.onmessage = (event) => {
* const messages = JSON.parse(event.data);
* processMessages(messages);
* };
* return () => ws.close();
* }, [processMessages]);
*
* return <A2UIRenderer surfaceId="main" />;
* }
* ```
*/
function useA2UI() {
const actions = useA2UIActions();
const state = useA2UIState();
return {
processMessages: actions.processMessages,
getSurface: actions.getSurface,
getSurfaces: actions.getSurfaces,
clearSurfaces: actions.clearSurfaces,
version: state.version
};
}
//#endregion
export { useA2UI };
//# sourceMappingURL=useA2UI.mjs.map