rdesign/frontend/node_modules/@copilotkitnext/react/dist/hooks/use-render-activity-message...

48 lines
2.1 KiB
JavaScript

const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
const require_CopilotChatConfigurationProvider = require('../providers/CopilotChatConfigurationProvider.cjs');
require('../providers/index.cjs');
const require_CopilotKitProvider = require('../providers/CopilotKitProvider.cjs');
let react = require("react");
let _copilotkitnext_shared = require("@copilotkitnext/shared");
let react_jsx_runtime = require("react/jsx-runtime");
//#region src/hooks/use-render-activity-message.tsx
function useRenderActivityMessage() {
const { copilotkit } = require_CopilotKitProvider.useCopilotKit();
const agentId = require_CopilotChatConfigurationProvider.useCopilotChatConfiguration()?.agentId ?? _copilotkitnext_shared.DEFAULT_AGENT_ID;
const renderers = copilotkit.renderActivityMessages;
const findRenderer = (0, react.useCallback)((activityType) => {
if (!renderers.length) return null;
const matches = renderers.filter((renderer) => renderer.activityType === activityType);
return matches.find((candidate) => candidate.agentId === agentId) ?? matches.find((candidate) => candidate.agentId === void 0) ?? renderers.find((candidate) => candidate.activityType === "*") ?? null;
}, [agentId, renderers]);
const renderActivityMessage = (0, react.useCallback)((message) => {
const renderer = findRenderer(message.activityType);
if (!renderer) return null;
const parseResult = renderer.content.safeParse(message.content);
if (!parseResult.success) {
console.warn(`Failed to parse content for activity message '${message.activityType}':`, parseResult.error);
return null;
}
const Component = renderer.render;
const agent = copilotkit.getAgent(agentId);
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
activityType: message.activityType,
content: parseResult.data,
message,
agent
}, message.id);
}, [
agentId,
copilotkit,
findRenderer
]);
return (0, react.useMemo)(() => ({
renderActivityMessage,
findRenderer
}), [renderActivityMessage, findRenderer]);
}
//#endregion
exports.useRenderActivityMessage = useRenderActivityMessage;
//# sourceMappingURL=use-render-activity-message.cjs.map