46 lines
1.2 KiB
JavaScript
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
|