61 lines
2.4 KiB
JavaScript
61 lines
2.4 KiB
JavaScript
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
const require_CopilotChatConfigurationProvider = require('../providers/CopilotChatConfigurationProvider.cjs');
|
|
const require_CopilotKitProvider = require('../providers/CopilotKitProvider.cjs');
|
|
let react = require("react");
|
|
let _copilotkitnext_shared = require("@copilotkitnext/shared");
|
|
|
|
//#region src/hooks/use-suggestions.tsx
|
|
function useSuggestions({ agentId } = {}) {
|
|
const { copilotkit } = require_CopilotKitProvider.useCopilotKit();
|
|
const config = require_CopilotChatConfigurationProvider.useCopilotChatConfiguration();
|
|
const resolvedAgentId = (0, react.useMemo)(() => agentId ?? config?.agentId ?? _copilotkitnext_shared.DEFAULT_AGENT_ID, [agentId, config?.agentId]);
|
|
const [suggestions, setSuggestions] = (0, react.useState)(() => {
|
|
return copilotkit.getSuggestions(resolvedAgentId).suggestions;
|
|
});
|
|
const [isLoading, setIsLoading] = (0, react.useState)(() => {
|
|
return copilotkit.getSuggestions(resolvedAgentId).isLoading;
|
|
});
|
|
(0, react.useEffect)(() => {
|
|
const result = copilotkit.getSuggestions(resolvedAgentId);
|
|
setSuggestions(result.suggestions);
|
|
setIsLoading(result.isLoading);
|
|
}, [copilotkit, resolvedAgentId]);
|
|
(0, react.useEffect)(() => {
|
|
const subscription = copilotkit.subscribe({
|
|
onSuggestionsChanged: ({ agentId: changedAgentId, suggestions }) => {
|
|
if (changedAgentId !== resolvedAgentId) return;
|
|
setSuggestions(suggestions);
|
|
},
|
|
onSuggestionsStartedLoading: ({ agentId: changedAgentId }) => {
|
|
if (changedAgentId !== resolvedAgentId) return;
|
|
setIsLoading(true);
|
|
},
|
|
onSuggestionsFinishedLoading: ({ agentId: changedAgentId }) => {
|
|
if (changedAgentId !== resolvedAgentId) return;
|
|
setIsLoading(false);
|
|
},
|
|
onSuggestionsConfigChanged: () => {
|
|
const result = copilotkit.getSuggestions(resolvedAgentId);
|
|
setSuggestions(result.suggestions);
|
|
setIsLoading(result.isLoading);
|
|
}
|
|
});
|
|
return () => {
|
|
subscription.unsubscribe();
|
|
};
|
|
}, [copilotkit, resolvedAgentId]);
|
|
return {
|
|
suggestions,
|
|
reloadSuggestions: (0, react.useCallback)(() => {
|
|
copilotkit.reloadSuggestions(resolvedAgentId);
|
|
}, [copilotkit, resolvedAgentId]),
|
|
clearSuggestions: (0, react.useCallback)(() => {
|
|
copilotkit.clearSuggestions(resolvedAgentId);
|
|
}, [copilotkit, resolvedAgentId]),
|
|
isLoading
|
|
};
|
|
}
|
|
|
|
//#endregion
|
|
exports.useSuggestions = useSuggestions;
|
|
//# sourceMappingURL=use-suggestions.cjs.map
|