rdesign/frontend/node_modules/@copilotkitnext/react/dist/providers/CopilotChatConfigurationPro...

69 lines
2.8 KiB
JavaScript

import React, { createContext, useContext, useMemo, useState } from "react";
import { DEFAULT_AGENT_ID, randomUUID } from "@copilotkitnext/shared";
import { jsx } from "react/jsx-runtime";
//#region src/providers/CopilotChatConfigurationProvider.tsx
const CopilotChatDefaultLabels = {
chatInputPlaceholder: "Type a message...",
chatInputToolbarStartTranscribeButtonLabel: "Transcribe",
chatInputToolbarCancelTranscribeButtonLabel: "Cancel",
chatInputToolbarFinishTranscribeButtonLabel: "Finish",
chatInputToolbarAddButtonLabel: "Add photos or files",
chatInputToolbarToolsButtonLabel: "Tools",
assistantMessageToolbarCopyCodeLabel: "Copy",
assistantMessageToolbarCopyCodeCopiedLabel: "Copied",
assistantMessageToolbarCopyMessageLabel: "Copy",
assistantMessageToolbarThumbsUpLabel: "Good response",
assistantMessageToolbarThumbsDownLabel: "Bad response",
assistantMessageToolbarReadAloudLabel: "Read aloud",
assistantMessageToolbarRegenerateLabel: "Regenerate",
userMessageToolbarCopyMessageLabel: "Copy",
userMessageToolbarEditMessageLabel: "Edit",
chatDisclaimerText: "AI can make mistakes. Please verify important information.",
chatToggleOpenLabel: "Open chat",
chatToggleCloseLabel: "Close chat",
modalHeaderTitle: "CopilotKit Chat",
welcomeMessageText: "How can I help you today?"
};
const CopilotChatConfiguration = createContext(null);
const CopilotChatConfigurationProvider = ({ children, labels, agentId, threadId, isModalDefaultOpen }) => {
const parentConfig = useContext(CopilotChatConfiguration);
const mergedLabels = useMemo(() => ({
...CopilotChatDefaultLabels,
...parentConfig?.labels ?? {},
...labels ?? {}
}), [labels, parentConfig?.labels]);
const resolvedAgentId = agentId ?? parentConfig?.agentId ?? DEFAULT_AGENT_ID;
const resolvedThreadId = useMemo(() => {
if (threadId) return threadId;
if (parentConfig?.threadId) return parentConfig.threadId;
return randomUUID();
}, [threadId, parentConfig?.threadId]);
const [internalModalOpen, setInternalModalOpen] = useState(isModalDefaultOpen ?? true);
const resolvedIsModalOpen = parentConfig?.isModalOpen ?? internalModalOpen;
const resolvedSetModalOpen = parentConfig?.setModalOpen ?? setInternalModalOpen;
const configurationValue = useMemo(() => ({
labels: mergedLabels,
agentId: resolvedAgentId,
threadId: resolvedThreadId,
isModalOpen: resolvedIsModalOpen,
setModalOpen: resolvedSetModalOpen
}), [
mergedLabels,
resolvedAgentId,
resolvedThreadId,
resolvedIsModalOpen,
resolvedSetModalOpen
]);
return /* @__PURE__ */ jsx(CopilotChatConfiguration.Provider, {
value: configurationValue,
children
});
};
const useCopilotChatConfiguration = () => {
return useContext(CopilotChatConfiguration);
};
//#endregion
export { CopilotChatConfigurationProvider, CopilotChatDefaultLabels, useCopilotChatConfiguration };
//# sourceMappingURL=CopilotChatConfigurationProvider.mjs.map