mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-23 02:36:12 +01:00
67 lines
2.3 KiB
TypeScript
67 lines
2.3 KiB
TypeScript
|
|
import React, { useMemo } from 'react';
|
||
|
|
import { AuthType } from 'librechat-data-provider';
|
||
|
|
import SearchApiKeyDialog from '~/components/SidePanel/Agents/Search/ApiKeyDialog';
|
||
|
|
import CodeApiKeyDialog from '~/components/SidePanel/Agents/Code/ApiKeyDialog';
|
||
|
|
import { useBadgeRowContext } from '~/Providers';
|
||
|
|
|
||
|
|
function ToolDialogs() {
|
||
|
|
const { webSearch, codeInterpreter, searchApiKeyForm, codeApiKeyForm } = useBadgeRowContext();
|
||
|
|
const { authData: webSearchAuthData } = webSearch;
|
||
|
|
const { authData: codeAuthData } = codeInterpreter;
|
||
|
|
|
||
|
|
const {
|
||
|
|
methods: searchMethods,
|
||
|
|
onSubmit: searchOnSubmit,
|
||
|
|
isDialogOpen: searchDialogOpen,
|
||
|
|
setIsDialogOpen: setSearchDialogOpen,
|
||
|
|
handleRevokeApiKey: searchHandleRevoke,
|
||
|
|
badgeTriggerRef: searchBadgeTriggerRef,
|
||
|
|
menuTriggerRef: searchMenuTriggerRef,
|
||
|
|
} = searchApiKeyForm;
|
||
|
|
|
||
|
|
const {
|
||
|
|
methods: codeMethods,
|
||
|
|
onSubmit: codeOnSubmit,
|
||
|
|
isDialogOpen: codeDialogOpen,
|
||
|
|
setIsDialogOpen: setCodeDialogOpen,
|
||
|
|
handleRevokeApiKey: codeHandleRevoke,
|
||
|
|
badgeTriggerRef: codeBadgeTriggerRef,
|
||
|
|
menuTriggerRef: codeMenuTriggerRef,
|
||
|
|
} = codeApiKeyForm;
|
||
|
|
|
||
|
|
const searchAuthTypes = useMemo(
|
||
|
|
() => webSearchAuthData?.authTypes ?? [],
|
||
|
|
[webSearchAuthData?.authTypes],
|
||
|
|
);
|
||
|
|
const codeAuthType = useMemo(() => codeAuthData?.message ?? false, [codeAuthData?.message]);
|
||
|
|
|
||
|
|
return (
|
||
|
|
<>
|
||
|
|
<SearchApiKeyDialog
|
||
|
|
onSubmit={searchOnSubmit}
|
||
|
|
authTypes={searchAuthTypes}
|
||
|
|
isOpen={searchDialogOpen}
|
||
|
|
onRevoke={searchHandleRevoke}
|
||
|
|
register={searchMethods.register}
|
||
|
|
onOpenChange={setSearchDialogOpen}
|
||
|
|
handleSubmit={searchMethods.handleSubmit}
|
||
|
|
triggerRefs={[searchMenuTriggerRef, searchBadgeTriggerRef]}
|
||
|
|
isToolAuthenticated={webSearchAuthData?.authenticated ?? false}
|
||
|
|
/>
|
||
|
|
<CodeApiKeyDialog
|
||
|
|
onSubmit={codeOnSubmit}
|
||
|
|
isOpen={codeDialogOpen}
|
||
|
|
onRevoke={codeHandleRevoke}
|
||
|
|
register={codeMethods.register}
|
||
|
|
onOpenChange={setCodeDialogOpen}
|
||
|
|
handleSubmit={codeMethods.handleSubmit}
|
||
|
|
triggerRefs={[codeMenuTriggerRef, codeBadgeTriggerRef]}
|
||
|
|
isUserProvided={codeAuthType === AuthType.USER_PROVIDED}
|
||
|
|
isToolAuthenticated={codeAuthData?.authenticated ?? false}
|
||
|
|
/>
|
||
|
|
</>
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
export default ToolDialogs;
|