mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 06:00:56 +02: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;
|