48 lines
2.1 KiB
JavaScript
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
|